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 6902 게시물 읽기
No. 6902
어떻게 생각하시나요?
작성자
과연
작성일
2006-11-21 14:14
조회수
4,524

Mysql 의 경우는 일방문자가 7만명의 사이트에 효과적으로 돌리는 방법을 여러방법을 간구 중이지만.. 여러가지 문제점(트랜젝션, MaxConnection 초과 등)으로 인해 어려움이 여럿있습니다. 


이하 존대는 생략합니다.


1) MySQL 동시접속자가 엄청 많은 경우 대처 방법 (방법 제안)

Msql을 DB 2대이상으로 미러링 서비스를 하지 않고, 효과적으로 사용하는 방법.. 만구 제생각.. 아직 테스트는 해 보지 않았습니다. 


ㅇ한 서버에 정상적인 mysql을 설치한다. 

다른 서버에서는 mysql 설치후  /usr/local/mysql/data 폴더를 지우고,  NFS 형태로 물려 정상적인 서버의 /data 로 인식시킨다. NFS(네트워크파일시스템. 이방법은 게 게시판에도 있으니 생략하겠습니다.) 과거에 ln -s 로 소프트링크를 걸어 사용해 본적은 있는데 전혀 무리 없습니다. 이렇게 해두고, 다른 서버의 DB에 접속해서 데이타 커넥션이 정상적으로 되는지 확인한다. 


정상적으로 된다면..


대부분 접속자가 많은 사이트에서는 Connection 에러가 발생하기에 Connection만 로드 밸런싱으로 분산시키고, 실제 데이타는 한 서버에서만 담당한다. 필요하다면 정상적인 서버는 미러링 서비스를 붙여 데이타의 안정성을 확보한다...


ㅇ 웹서버의 경우도 이와 같은 방법으로 하게 되면 하나의 프로그램으로 여러대의 서버에 돌릴 수 있지 않을까 하는 생각을 해본다.


2) PostGreSql과 Mysql의 속도 테스트


전제 : 동일한 테이블구조(index, data type)와 동일한 컴퓨터(로컬에서 테스트), 웹페이지 로딩으로 데이타 테스트.. mysql - mysql_connect, pgsql - pg_connect 함수를 이용.

데이타는 100만건으로 테스트


Insert : 100만건을 10000건씩 루프돌리면서 100회 테스트.. 

           10000건을 인서트 하는데 걸리는 시간

           mysql : 평균 2.5초, pgsql : 평균 8.5 초


Select : 100만건을 하나씩 셀렉트(index이용)

           10000건을 셀렉트하는데 걸리는 시간

           mysql : 평균 3.3초, pgsql : 평균 6.5초


update : 100만건을 하나씩 업데이트(index이용)

           10000건을 업데이트하는데 걸리는 시간

           select와 거의 유사..


테스트는 postGreSql 8.0.3버전으로 했습니다.


속도차이가 너무나네요.. 거의 3~4배정도의 차이가 나고..


select count(*) tbl_test ; // 데이타 100건 있을 경우

mysql : 0.03초

postgresql : 6초 가까이..ㅡ.ㅡ


PostGreSql을 생각중인 분들은 참고하세요.


출처 : PHP-SCHOOL

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

sqlite와 비교해주고 싶은 생각입니다...

저런식의 비교는 mysql의 시장에서의 위치만 애매하게 만드는 테스트죠 ㅋㅋㅋ


제가 테스트 하면 이런 결론을 내릴 수 있습니다.

"mysql은 일반적인 상황에서 대체적으로 빠른편이다. 하지만 sqlite보다는 많이 느리다."

"mysql은 일반적인 상황에서 대체적으로 빠른편이다. pgsql은 느리지 않다."


속도 외에 고려할 점이 많은걸 요 테스트 하신 분은 간과했네용 -.-;

신기배(소타)님이 2006-11-21 14:29에 작성한 댓글입니다.

-- select count(*) tbl_test ; // 데이타 100건 있을 경우

-- mysql : 0.03초

-- postgresql : 6초 가까이..ㅡ.ㅡ


-- PostGreSql을 생각중인 분들은 참고하세요


반박하고 싶지만 시간 관계상 이 부분만 설명하자면


MYSQL 의 경우 select count(*) tbl_test 와 같은 쿼리는

tbl_test 테이블에서 레코드를 하나씩 세지 않고 시스템 테이블에서 조회합니다. 따라서 PGSQL 보다 빠르긴 한데 그 대신 MYSQL 방식은 시스템 테이블에 그 값을 유지하기 위한 추가적인 동기화 처리가 필요합니다. 따라서 이것만 가지고는 두 DB 의 우열을 판단할 수는 없읍니다.


-- 어떻게 생각하시나요?


그래서 MYSQL 이 더 낫다라는 주장에는 별로 수긍이 가지 않습니다.

초보대왕님이 2006-11-21 14:33에 작성한 댓글입니다.
이 댓글은 2006-11-21 14:35에 마지막으로 수정되었습니다. Edit
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=41058

스쿨에서 제가 답변을 달았던 아주~~~~ 옛날 글이군요.
이렇게 다굴당한 글을 올리시다니...
결론도 다 나온 것 같은데...ㅎㅎ
송효진님이 2006-11-21 22:38에 작성한 댓글입니다.
이 댓글은 2006-11-21 22:44에 마지막으로 수정되었습니다. Edit

가서 보고 나니 약간 어이가 없네요 


05-07-08 13:08에 올린 글을 다시올리다니


거기 댓글도 답변으로 충분하던데요


작성자 본인이 다시올린 걸까요 아니면 낚시일까요?...

지나가다님이 2006-11-22 13:22에 작성한 댓글입니다.
이 댓글은 2006-11-22 13:25에 마지막으로 수정되었습니다. Edit

낚시에 한표 . .  ^-^ . . . 

mysql을 많이 써주면 제 입장에서는 좋습니다.
희소가치도 있고요 . .  
제가 하는 프로젝트랑 비슷한 생각이신 분이
mysql을 쓰면 저는 경쟁력면에서 우의를 차지하게 되지요 ^-^ . . 
ㅎ ㅎ ㅎ

롱다리님이 2006-11-22 15:17에 작성한 댓글입니다. Edit

postgresql 메뉴얼 보시면


첫장부터 postgresql은 최소 성능 옵션으로 설치 된다고 나와 있습니다.

설치된 하드웨어를 보면서 튜닝하라구요.


메뉴얼 첫장에요......


RDBMS로의 발전은 그 기능들이 필요했기 때문입니다.

김민수(pigon2)님이 2006-11-23 17:10에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6906급질문!!! 입니다. 답변 부탁드립니다. [3]
강승준
2006-11-23
3627
6904이 두 function이 다른건가요? [4]
이상원
2006-11-22
4409
6903max_connections 이놈이랑 실행옵션 /n 128 이거는 어떤 차이인지. [4]
Min
2006-11-22
4558
6902어떻게 생각하시나요? [6]
과연
2006-11-21
4524
6901리플리케이션, 클러스터링 관련 정보 요약 [1]
신기배
2006-11-20
7411
6900pgcluster 가 개발 중단된건가요? [3]
송효진
2006-11-20
4726
6899Join 문 질문 하나 드릴께요 [1]
full
2006-11-20
3870
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다