2. DBMS이야기/02. MySQL

MySQL 설치 후 최적화 (query_cache_size, log_bin, skip_name_resolve)

OSSW(Open Source System SoftWare 2014. 8. 28. 16:00

설치 최적화의 경우는 Qeury 전반에 영향을 주게 됨으로 대게의 경우 개별 Query의 성능 영향도 보다 영향도가 크고, 잘 최적화된 경우에는 효과가 매우 크다.


지난 아티클 "MySQL 설치 후 Innodb Setting", "MySQL 설치 후 최적화 - Basic TOP 3" 에서 다루지 않았으나 중요한 3가지 옵션에 대해 기술합니다.


1. query_cache_size

query cache는 동시성이 적당한 경우에도 병목이 보일 수 있다. 가장 좋은 옵션은 MySQL 5.6에서는 Defailt로 된 query_cache_size = 0으로 셋팅(비활성화)하는 것이다. 만약 이미 MySQL 어플리케이션이 Query Cache 가 활성화 되어있고, 특별한 문제가 없다면, Query Cache는 유용했을 수도 있다. 그런 경우에는 비활성화를 주의깊게 결정해야 한다.

2. log_bin

복제 master로 구성한다면, binary logging를 활성화하는 것은 필수사항이다. 그렇다면 server_id 값을 unique 하게 셋팅해야한다. 이는 싱글 서버인 경우에도 Point-in-time recovery에 유용하다. 오래된 로그 파일을 정리할 경우에는 PURGE BINARY LOGS 나 EXPIRE_LOGS_DAYS 같은 구문을 사용한다. 

시점 복원이나 복제의 master로 사용되지 않는다면 disable 하는 것이 좋다.


3. skip_name_resolve

Client에서 접속할 때, 서버는 hostname에 대한 이름풀이를 수행한다. 그리고 DNS 가 느리게되면, Connection을 확보하는 것도 같이 느려진다. 그러므로, server를 시작할 때 skip-name-resolve 를 비활성화해 모든 DNS Lookups을 찾지 않게 하는 것을 권고한다. 유일한 제약은 GRANT 구문이 IP 주소만을 사용해야 한다는 점이다. 따라서 기존 시스템에서 이 값을 적용할 경우에는 신중해야 한다.


BY 윤성용