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
운영게시판
최근게시물
MySQL Q&A 26994 게시물 읽기
No. 26994
MySQL 클러스터에서 대용량 데이터 처리
작성자
dba
작성일
2007-09-03 12:46
조회수
2,875

MySQL 클러스터 5.0.45버전을 사용하려고 합니다.(5.1버전은 버그가 많아서 포기)

그런데, 대용량 로그 데이터의 메모리가 50G를 넘어버립니다.

제 시스템의 최대메모리는 16G밖에 지원을 안합니다.

이런상황에서 별도의 다른 DB를 준비하지 않고 MySQL클러스터 내에서 50G의 데이타를 소화하는 방법 있을까요?

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

클러스터에서 replica 갯수에 따라 노드그룹이 만들어집니다.


클러스터에서는 같은 노드그룹에서는 같은 데이터를 가지지요. 그리고 전체 데이터는 노드그룹으로 파티셔닝됩니다.


결과적으로 50G의 데이터를 저장하기위해서는 하나의 replica가 가지는 메모리의 양보다 각 노드그룹이 가지는 메모리의 합이 중요합니다.


현재 16G 용량의 노드그룹(replica를 2로 하면 하나의 노드그룹은 2개의 서버가 필요)이 최소 4개 필요합니다. 그러면 데이터 노드 전체 서버수는 2*4 = 8 이되는거죠.


위의 예는 순수하게 메모리에 데이터를 적재할 때 시나리오입니다. 리플리카의 개수에 따라 필요한 서버의 수는 달라집니다.


서버 사용에 제약이 있다면 5.1 버전에서 지원하는 Disk based table을 사용하세요. 이경우 primary key와 인덱스 데이터만 메모리에 유지하고 나머지는 데이터 노드의 디스크에 저장가능합니다.


http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-nodes-groups.html

김영우님이 2007-09-08 16:37에 작성한 댓글입니다. Edit

영우님 답변 정말 감사합니다.


데이타노드를 추가하면 이용할수 있는 메모리 사이즈도 증가하는 군요.

저는 병렬식으로 생각해서, 데이타노드를 몇대를 추가해도 이용할수 있는 메모리 사이즈는,

똑같은줄 알았는데,

파티션닝되는 거였군요.


감사합니다. 일단 최대의 문제가 해결되었습니다.


그런데, 퍼포먼스는 정말 안나오네요.

테스트페이지를 innodb에서 열면 3초에 끝나는데,

ndb의 경우는 6초에서 8초정도로 2배에서 3배정도 느리네요.

이건 원래 ndb가 느려서 그렇겠죠?

dba님이 2007-09-10 12:56에 작성한 댓글입니다.
이 댓글은 2007-09-10 13:17에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
26998리플리케이션 관련 질문입니다. [1]
서재필
2007-09-03
2149
26997replication 관련 [1]
김준형
2007-09-03
2067
26995MySQL Connection Pooling
오상현
2007-09-03
1904
26994MySQL 클러스터에서 대용량 데이터 처리 [2]
dba
2007-09-03
2875
26992혹시 이런 쿼리도 가능한지... [1]
보리나무
2007-09-03
1968
26990Stored Procedure 에서 이런 것이 되나요? (select흉내) [1]
김성헌
2007-09-02
2428
26989mysql4.0을 쓰다가 mysql5.0대를 쓸려고 합니다
윤정환
2007-09-01
2045
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다