MySQL에서 성능 저하를 유발하는 느린 쿼리(Slow Query)를 파악하고 최적화하기 위해 Slow Query Log를 활용합니다. 이 글에서는 Slow Query Log를 활성화하고 관리하는 방법에 대해 알아보겠습니다.
1. Slow Query Log란?
MySQL에서 Slow Query Log는 특정 시간 이상 실행된 느린 쿼리를 기록하는 로그입니다. 성능 문제를 진단하고 최적화할 수 있는 중요한 자료로 활용됩니다.
Slow Query Log의 필요성
- 데이터베이스 성능 저하를 사전에 파악할 수 있음
- 느린 쿼리의 개선점을 확인 가능
- 성능 최적화와 모니터링에 유용
2. Slow Query Log 확인 방법
Slow Query Log와 관련된 변수를 확인하려면 아래 명령어를 사용합니다.
SHOW VARIABLES LIKE '%slow_query%';
예시 출력
+---------------------+-----------------+
| Variable_name | Value |
+---------------------+-----------------+
| slow_query_log | ON |
| slow_query_log_file | /var/log/slow.log|
| long_query_time | 10.000000 |
+---------------------+-----------------+
주요 변수 설명
- slow_query_log : Slow Query Log 활성화 여부 (ON/OFF)
- slow_query_log_file : 로그 파일 경로
- long_query_time : 느린 쿼리로 간주되는 최소 실행 시간 (초)
3. Slow Query Log 활성화 방법
만약 Slow Query Log가 비활성화되어 있다면 아래 명령어로 활성화할 수 있습니다.
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1; -- 1초 이상 소요되는 쿼리 기록
로그 파일 경로 설정
로그 파일 경로를 직접 지정할 수 있습니다.
SET GLOBAL slow_query_log_file = '/path/to/slow-query.log';
4. 설정 지속성 확보하기
MySQL 서버를 재부팅하면 설정이 초기화될 수 있으므로, my.cnf 또는 my.ini 파일에 설정을 추가해야 합니다.
설정 파일 수정
파일 경로는 주로 /etc/my.cnf 또는 /etc/mysql/my.cnf입니다.
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/slow-query.log
long_query_time = 1
파일 수정 후 MySQL을 재시작합니다.
sudo systemctl restart mysqld
5. Slow Query Log 분석하기
로그 파일을 직접 확인하여 느린 쿼리를 분석할 수 있습니다.
cat /var/log/slow-query.log
또는 mysqldumpslow 명령어를 사용하여 요약본을 볼 수 있습니다.
mysqldumpslow /var/log/slow-query.log
'삼분공부 > DataBase' 카테고리의 다른 글
[DB] commit(), rollback(), release()의 역할 (0) | 2025.04.15 |
---|---|
[MySQL] GET_LOCK()을 활용한 동시성 제어 — Spring Boot에서 안전한 주문 번호 생성하기 (0) | 2025.04.01 |