database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7442 게시물 읽기
No. 7442
postgreSQL은 MySQL보다 너무 느리다.??
작성자
성실
작성일
2008-06-13 14:38ⓒ
2008-06-13 14:46ⓜ
조회수
7,187

글의 제목이 상당히 도발적이라고 생각합니다만, 실제 제가 느끼기에는 분명합니다.

MySQL 버전은 5.0.x입니다. postgreSQL 버전은 8.1.3 입니다.

설정은 rpm 실행해서 설치되는 기본 설정입니다.

각 데이터베이스는 테이블 하나, 그 테이블은 필드 10개중 1개만 PK 입니다. 

이런 상태에서 50메가 분량의 CSV파일과, 

100만건의 Insert SQL의 처리 시간이 현저하게 차이가 나고 있습니다.

MySQL이 postgreSQL의 배이상으로 빠르게 처리를 끝내고 있는 상태입니다.

postgresql.conf 파일의 memory 섹션의 모든 값을 최대치로 올려도 

그다지 처리속도가 빨라지지 않더군요.

데이터베이스 설계 및 구성 자체는 둘째로 밀어두고 

두 시스템적인 속도차이 같은데, 이렇게나 차이가 날 수 있는 것입니까?

( 왠지... postgreSQL 8.3.x 를 써서 비교 해 봐라!  ... 하실 꺼 같은데;;; )

이 글에 대한 댓글이 총 4건 있습니다.

PostgreSQL의 기본 설정은 보수적으로 설정되어 있습니다.

메모리 관련 말고 트랜젝션 로그를 기록하는 부분 설정도 바꿔주셔야 합니다.

MySQL은 innodb인가요?

 

8.3 버전으로 올려서 해보세요~ (예상대로라능 ㅋ)

신기배(소타)님이 2008-06-13 15:16에 작성한 댓글입니다.
이 댓글은 2008-06-13 15:17에 마지막으로 수정되었습니다.

안녕하세요,


일단 쓰신 글로만 판단하면 단순 INSERT성능만 테스트하신 것 같은데요.

말씀하신 '데이터베이스 설계 및 구성'이 성능을 크게 좌우하는 요소라 생각됩니다.

두 DBMS가 실행되는 '구성'이 공평하지 않다면 제대로된 결론을 얻기 어려울 수 있습니다.


http://jayant7k.blogspot.com/2008/06/mysql-versus-postgresql-part-ii.html

김영우님이 2008-06-13 16:38에 작성한 댓글입니다. Edit

저도 성급한 답변일 수 있겠지만 단일 처리는 대부분 MySQL이 빠르게 작동합니다.

지금 하신 작업 같은 경우는 아마도 MySQL이 PgSQL 뿐 아니라 어느 상용 DB 보다도 빠를 것으로 예상합니다.


솔직히 지금 저장 속도가 아주 중요한 경우 - 저는 수십만건의 자료를 가능하면 빨리 DB에 저장해야 하는 프로그램을 만들고 있습니다. - MySQL도 느려서 HSQL이나 SqlLite 같은 것을 찾아봐야 할지도 모릅니다.


물론 일반적으로 PgSQL이 이런 종류의 작업에서는 좀 느린 것으로 벤치마크 되고 있기는 합니다. Index가 걸린 테이블은 특히 그렇죠.


그런데 DB는 여러가지를 고려해야 한다고 생각합니다.


PgSQL의 성능상 강점은 동시 처리가 많을 때에 나타나곤 합니다.

단일처리는 늦지만 동시 사용자가 많아져도 성능 저하가 상대적으로 적게 일어난다는 거죠.

MySQL은 반면에 한순간 성능이 급격하게 떨어지는 현상이 있습니다.


저는 MySQL이 Embeded Rdbms나 Smart Storage(단순한 쿼리가 많고 저장 보다는 읽기가 많은)로는 아주 훌륭한 솔루션이라고 생각합니다. 하지만 엄청난 규모의 데이터베이스에서 복잡한 OLAP 성 질의를 처리하거나 동시에 읽고 쓰는 사용자가 많은 업무용 환경에서는 부족한 부분이 많고 동시 처리에도 한계가 있는 듯 합니다.


결론적으로 MySQL이 유리한 영역이 있고 PgSQL이 유리한 영역이 있다는 것이 제 생각입니다. 오히려 MySQL이 좀 특수한 영역(예를 들어 웹 게시판용)에 적합한 DB이고 PgSQL은 기존의 상용 DB들이 사용되던 RDMBS 영역에 잘 부합한다고 봅니다.

박성철(gyumee)님이 2008-06-13 18:20에 작성한 댓글입니다.
이 댓글은 2008-06-13 18:26에 마지막으로 수정되었습니다.

단순히 insert 구문을 사용한다면 당연 느리겠지요..


100 만건과 같이 많은 양을 동시에 입력할 거면

copy 라는 좋은 구문이있습니다.

copy 구문으로 백만건을 입력하면 10여초 정도면 끝납니다.


그리고 단순한 insert 문이 동시사용자가 많아 많은 insert 를 내는 경우에도 

여러가지 생각해봐야 할 것이 그것이 insert 한 동작만 하는것인지

여러동작을 하는 것인지도 생각해야하고요..

mysql 은 trigger 기능을 전혀 안 써봐서 잘은 모르겟지만..


trigger 나 rule 을 사용하는 경우가 실무에서는 허다합니다.



게시판을 예를 들면

사용자가 글쓸때 insert 처리하고 

읽을때 select 검색시 where 로 하여 paging 을 구현한다고 할때와

trigger 를 사용하여 통계테이블을 만들고 그것을 활용하는 방법


insert 하나만 보면 당연 한동작이 빠르겠지만

검색하고 select 하고 하는 과정도 생각해보면

결코 느리지 않다...라는 것이죠..


즉, 단순한 동작이 아니라 전반적인 결과를 함께 봐야 한다는 것이지요

또한, 여러개의 join 등을 해보면 좋겠죠


뭐 설계를 어떻게 하느냐에 따라 달라지겠죠

tyro님이 2008-06-13 18:46에 작성한 댓글입니다.
이 댓글은 2008-06-13 18:50에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7446insert 후 select만 일어날때 어떤 DBMS가 가장 빠를까요? [3]
도재영
2008-06-21
7530
74457.3.4 >> 8.3.3 업그레이드 [1]
김지현
2008-06-19
6740
7443PostgreSQL lib를 이용한 코딩중 PQexec()함수를 쓰는데... [3]
영광
2008-06-17
6470
7442postgreSQL은 MySQL보다 너무 느리다.?? [4]
성실
2008-06-13
7187
7441CREATE USER 시 사용자가 있는지 검사한 후 사용자 생성방법? [2]
김대청
2008-06-07
6610
7440프로시져에 대한 질문 [2]
윤일
2008-06-05
6440
7439PostgreSQL 'Built-in' Replication [1]
김영우
2008-06-03
6539
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다