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 30600 게시물 읽기
No. 30600
12기가의 테이블 전체검색..
작성자
박찬성(pcs8404)
작성일
2013-06-03 16:35
조회수
10,715

4천만건가량 있는 디비테이블을 검색하는데요 결과가 나오는게 너무너무 느립니다.

 

셋팅..

테이블은 innodb테이블입니다.

tmp테이블은 10기가 가량 셋팅 해놨습니다.

innoDB메모리 캐시설정 30기가 해놨습니다.

서버의 메모리는 48기가 가량 되며 cpu자원은 많이 남습니다. 5%도 안사용합니다.

쿼리는 매번 그룹바이를 사용 하게되며.. 검색조건은 like '%~~~%'을 사용합니다. 때로는 한개 또는 두개를 사용하게 됩니다.

그리고 myisam으로 변환하여 풀텍스트 인덱스도 하려고 했지만 검색조건이 맞질 않아 사용이 불가능합니다.

검색 쿼리를 날리면 하드디스크의 IO가 대략 5~30메가 내외로 읽어들입니다.

 

 

제가 알고 있기로는 innodb 캐시를 20기가를 할당 하면 분명히 메모리상에 다 올라있기떄문에 하드디스크를 안읽어도 되는걸로 알고 있는데요.. 계속 읽습니다.

tmp테이블은 제가 그룹바이를 많이 묶기때문에 10기가면 충분하고 남으리라 생각해요..

제가 원하는것은 데이터가 메모리 속에 모두 올라가서 하드디스크를 더이상 읽지 않고 아주 빠르게 검색결과를 추출해내는건데요..

어떠한 문제가 있을까요??

 

 

 

 

 

 

아래는 셋팅 내용입니다.

 

innodb additional mem pool size 134,217,728
innodb autoextend increment 8
innodb buffer pool awe mem mb 0
innodb buffer pool size 32,212,254,720
innodb checksums ON
innodb commit concurrency 0
innodb concurrency tickets 500
innodb data file path ibdata1:10M:autoextend
innodb data home dir  
innodb adaptive hash index ON
innodb doublewrite ON
innodb fast shutdown 1
innodb file io threads 4
innodb file per table OFF
innodb flush log at trx commit 2
innodb flush method O_DSYNC
innodb force recovery 0
innodb lock wait timeout 50
innodb locks unsafe for binlog OFF
innodb log arch dir  
innodb log archive OFF
innodb log buffer size 2,097,152
innodb log file size 536,870,912
innodb log files in group 2
innodb log group home dir ./
innodb max dirty pages pct 90
innodb max purge lag 0
innodb mirrored log groups 1
innodb open files 300
innodb rollback on timeout OFF
innodb support xa ON
innodb sync spin loops 20
innodb table locks ON
innodb thread concurrency 20
innodb thread sleep delay 10,000
innodb use legacy cardinality algorithm ON
이 글에 대한 댓글이 총 1건 있습니다.

 제가 잘은 모르지만 heap 테이블을 한번 이용해보시는건 어떨까요?

 

마이그(waitfor)님이 2013-06-24 17:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
30603Left Join을 대체할수 있는 방법 [1]
박판규
2013-06-19
9424
306025분 단위의 접속자수 [1]
김성환
2013-06-12
9652
30601error 2013 이거 해결 어떻게 해야되나요? [1]
김동현
2013-06-06
9531
3060012기가의 테이블 전체검색.. [1]
박찬성
2013-06-03
10715
30599N 키워드(?) 질문 [2]
mysql
2013-05-30
9109
30598mysql 이미설치된 5.5 이상에서 cmake 옵션은 확인할수없나요?
배원준
2013-05-30
9293
30597[Mysql] 쿼리 질문 - 컬럼을 비교하여 값이 다른 경우 상태값을 변경 [2]
안중경
2013-05-24
11690
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다