2015.09.15 15:57
MYSQL의 질의 속도를 튜닝하다보면 MYSQL의 질의에 대한 응답속도가 현저하게 떨어지거나 MYSQL 데이터베이스와 연동되는 특정 어플리케이션이 시스템자원을 현저하게 많이 차지하는 등의 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 SLOW 로그에서 어떤 프로그램이 문제를 일으키는지에 대한 확인이 가능합니다.
SLOW 로그는 MYSQL의 환경변수인 "long_query_time" 의 설정시간 (초 단위) 이상의 쿼리 시간을 가지는 특정 SQL 쿼리문에 대한 로그만을 기록하는 로그파일입니다. 따라서 SLOW 로그파일을 활용하면 어떤 프로그램이 쿼리시간을 많이 차지하는가를 확인 할 수 있습니다. 즉 어느날 갑자기 MYSQL의 응답속도가 현저하게 떨어졌다면 SLOW 로그로 쿼리 응답속도가 일정시간 지속되는 쿼리문을 찾아서 조치하면 됩니다.
다음은 예시입니다.
[root@host data]#/usr/local/mysql/bin/mysqld_safe --log-slow-quaries=SLOW_QUERY_LOG &
[1] 4228
이 예시에서 SLOW 로그파일명으로 SLOW_QUERY_LOG 라고 지정하였기 때문에 /usr/local/mysql/data 디렉토리에는 SLOW_QUERY_LOG 라고 지정하였기 때문에 /usr/local/mysql/data/ 디렉토리에는 SLOW_QUERY_LOG 라는 파일명이 생성되어 SLOW 쿼리로그를 기록하게 됩니다.
다음 예시는 해당 SLOW 로그 파일을 확인하는 과정입니다.
[root@host data]#ls -l /usr/loca/mysql/data/SLOW_QUERY_LOG
-rw-rw---- 1 mysql 179 9월 15일 15:42 /usr/local/mysql/data/SLOW_QUERY_LOG
위에 표시된 "SLOW_QUERY_LOG" 파일에는 MYSQL의 환경변수 "long_query_time" 에 초단위로 지정된 시간보다 초과하는 쿼리문만 기록합니다.
다음 예시는 MYSQL의 환경변수 "long_query_time"의 값을 확인하는 방법입니다.
[root@host bin]#./mysqladmin -uroot -p variables | grep long_query_time
Enter password: *********
| long_query_time | 10.000000
결과를 보면 "long_query_time"이 10초로 설정되어 있는 것을 볼 수 있습니다. 물론 이 값은 변경도 가능합니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
5 | Mysql 에서 많이 쓰이는 명령어 | sylee | 2008.05.15 | 36481 |
4 | MySQL Binary Log 지우는 방법 | 호스트웨이 | 2012.03.09 | 37545 |
3 | MYSQL-날짜 관련 함수 모음 | 호스트웨이 | 2015.09.09 | 40681 |
2 | mysql 원격 접속 허용하기 | hostway | 2008.05.14 | 42437 |
1 | MYSQL 접속 - 소켓 지정하여 접속하기 | 호스트웨이 | 2015.09.23 | 58367 |