프리이미지
사이트 내 전체검색

느린 워드프레스 + mysql db 빠르게 하기

페이지 정보

작성일16-06-22 00:40

본문

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 

 

 

게시물 검색