심심한데 MySQL 의 key_buffer_size 에 대해서 토론보자
db 를 빠르게 하려면 OS (리소스 많이 않쓰는 OS), 그리고 CPU, RAM 이런게 용량많고 빠르면 장땡이다
하드웨어 OS는 위에 말했든이 매우 간단 하니까 대충 넘어가면 된다. 그냥 용량많고 빠르면ㅈ ㅏㅇ떙이다
* 하지만 본인 비지니스의 예산 에맞춰서 고르는게 좋겠다 *
MYSQL 서버의 query 현제 performance는 benchmark() 를통해 확인이 가능하다
mysql> select benchmark(100000, 10 + 11)
//이건 10 + 11 이란 expression 을 10000번 돌리는거다
+--------------------------+
| benchmark(1000000,10+11) |
+--------------------------+
| 0 |
+--------------------------+
1 row in set (0.08 sec)
//두번째 row의 result 항상 0이다
하지만 benchmark 를 햇는데 존나느릴시 문제가 있는거다
그럼 key_buffer_size를 고쳐서 튜닝의 첫단계를 할수가있다.
key_buffer_size는 mysql이 사용하는 index 들의 buffer 사이즈다
그리고 이게 높을수록 query속도는 빠름
그리고 이 buffer의 정밀한 속도를 확인하려면
mysql > show status;
를 할시
key_read_requests, key_reads, key_write-requests, key-writes
이 4개의 parameter를 return한다.
여기서 key_reads / key_read_requests & key_writes / key_write_requests 를 하면 두 결과 모두 1 이하인데 이건 낮으면 낮을수록 좋다는 뜻이다.
이걸 더 낮게 하려면 key_buffer_size를 늘리면 된다.
하지만 key_buffer_size를 많이 늘리면 오히려 서버가 느려질수도있다.
예를들어 현제 시스탬에 메모리가 512MB인데 여기서 적절한 key_buffer_size는 256mb정도 이다.
출처 : http://gall.dcinside.com/list.php?id=programming&no=342770&page=1&bbs=
'DB' 카테고리의 다른 글
ORACLE GRANT SELECT (0) | 2013.01.15 |
---|---|
ORACLE 9I NVL('STR','')='STR' (0) | 2013.01.15 |
스크립트에서 프로시져 실행 (0) | 2013.01.08 |
java.sql.SQLExeption: 내부 표기로 변환할 수 없습니다. (0) | 2013.01.08 |
부적합한 열 인덱스 (0) | 2013.01.08 |