1. 느린 쿼리 확인
my.cnf 에 느린쿼리에 대한 로그 남기기
[mysqld] 섹션에 아래의 내용을 추가
1 2 |
log-slow-queries = /var/log/mysql/mysql-slow.log // slow 쿼리 로그를 남길 위치 long_query_time = 1 // 느린 쿼리의 기준(초) |
2. 느린 쿼리를 확인하면, 해당 쿼리의 분석
쿼리 플랜을 확인해서 index 를 타는지, 아닌지 확인
1 2 |
desc select * from table; explain select * from table; |
해당 테이블의 index 정보 확인
1 |
SHOW INDEX FROM table; |
쿼리의 조건과 현재 적용된 index 가 적절한지 판단.
3. index 수정
index 추가
1 |
ALTER TABLE contents add index idx_column (column); |
index 삭제
1 |
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별 사용량도 체크 해보자
1 2 3 4 |
SELECT information_schema.tables.table_schema, Sum(data_length) FROM information_schema.tables GROUP BY information_schema.tables.table_schema |