mysql 쿼리 속도를 위한 튜닝 방법

1. 느린 쿼리 확인

my.cnf 에 느린쿼리에 대한 로그 남기기

[mysqld] 섹션에 아래의 내용을 추가

log-slow-queries = /var/log/mysql/mysql-slow.log // slow 쿼리 로그를 남길 위치
long_query_time = 1  // 느린 쿼리의 기준(초)

2. 느린 쿼리를 확인하면, 해당 쿼리의 분석

쿼리 플랜을 확인해서 index 를 타는지, 아닌지 확인

desc select * from table;
explain select * from table;

해당 테이블의 index 정보 확인

SHOW INDEX FROM table;

쿼리의 조건과 현재 적용된 index 가 적절한지 판단.

3. index 수정

index 추가

ALTER  TABLE  contents  add  index  idx_column (column);

index 삭제

ALTER TABLE table_name DROP INDEX index_name (column_name);

4. 별 이상이 없다면, index 단편화일 가능성도 있으므로 index 정리

cd mysql/var/디비명
myisamchk -R1 *
options
-a : 흩어진 인덱스를 모아 속도 향상
-S : 인덱스트리 소팅 검색 속도 향상
-R : 인덱스 기준 레코드 정렬 속도 향상

5. mysql DB별 사용량도 체크 해보자

SELECT information_schema.tables.table_schema, 
       Sum(data_length) 
FROM   information_schema.tables 
GROUP  BY information_schema.tables.table_schema 
This entry was posted in Database and tagged , . Bookmark the permalink.

댓글 남기기