본문
1. wp-config.php
define('DB_HOST', '127.0.0.1');
를
define('DB_HOST', 'localhost');
로 변경
mysql 확인
mysqladmin -uroot -p extended-status -r -i 1 | grep -E 'Created_tmp|--'
매 초마다 Status 차이를 보여주는 명령어이며, Created_tmp_files 이 꾸준히 많다면 tmp_table_size를 늘려줄 필요가 있습니다. Global Variable 에 설정하는 것보다는 필요 시 Session Variable로 설정하는 것을 권고 드립니다.
늘리면 2GB로 변경
set session tmp_table_size = 2 * 1024 * 1024 * 1024;
set session max_heap_table_size = 2 * 1024 * 1024 * 1024;
/my.cnf
## 추가
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
query_cache_size = 32M
key_buffer_size = 384M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
table_open_cache = 512
tmp_table_size = 2000M
max_heap_table_size = 2000M
=========================================
http://apollo89.com/wordpress/?p=6547 참고
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
댓글목록
등록된 댓글이 없습니다.