요약:
MySQL 슬로우 쿼리 로그(slow_query_log)는 데이터베이스의 성능 병목을 찾는 핵심 기능입니다.
이 기능을 통해 느린 SQL을 추적하고, 인덱스 최적화나 구조 개선을 효율적으로 수행할 수 있습니다.
이번 글에서는 슬로우 쿼리 로그 설정 방법, 주요 파라미터, 분석 예시를 실무 기준으로 자세히 다룹니다.
⚙️ 1. 슬로우 쿼리 로그란?
슬로우 쿼리 로그(Slow Query Log) 는 MySQL에서 일정 시간 이상 걸린 쿼리를 자동으로 기록하는 기능입니다.
이 기능을 사용하면 DB 성능 저하의 원인을 로그 분석만으로 쉽게 식별할 수 있습니다.
✅ 예를 들어,
사용자 요청이 느릴 때 “쿼리 자체가 느린 건지, 인덱스가 문제인지” 구분할 수 있죠.
🧩 2. MySQL 슬로우 쿼리 로그 설정 방법
다음 명령어를 MySQL 콘솔에서 실행하면 됩니다 👇
-- 슬로우 쿼리 로그 활성화
SET GLOBAL slow_query_log = 1;
-- 로그 파일 경로 지정
SET GLOBAL slow_query_log_file = '/var/lib/mysql/slow_query.log';
-- 0.5초(500ms) 이상 걸린 쿼리만 기록
SET GLOBAL long_query_time = 0.5;
💡 참고:
- Aurora MySQL 환경에서는 Parameter Group을 통해 설정해야 합니다.
(콘솔 → Parameter groups →slow_query_log=1,long_query_time=0.5) - 설정 후 MySQL 재시작 없이 즉시 반영됩니다.
🧠 3. MySQL 슬로우 쿼리 로그 주요 파라미터 정리
| 파라미터 | 설명 | 추천값 |
|---|---|---|
slow_query_log | 슬로우 쿼리 로그 기능 활성화 여부 | 1 |
slow_query_log_file | 로그 파일 저장 경로 | /var/lib/mysql/slow_query.log |
long_query_time | 기록 기준 시간(초) | 0.5~1.0 |
log_queries_not_using_indexes | 인덱스를 사용하지 않은 쿼리 기록 | 1 (테스트 시 유용) |
min_examined_row_limit | 검사한 행 수 기준 필터링 | 100 이상 |
🔍 4. MySQL 슬로우 쿼리 로그 분석 방법
로그를 단순히 보는 것보다, mysqldumpslow 또는 pt-query-digest 같은 툴을 활용하면 효율적입니다.
✅ 예시 1. mysqldumpslow 명령어
mysqldumpslow -s t /var/lib/mysql/slow_query.log
실행 시간이 긴 쿼리 순서로 요약 출력합니다.
✅ 예시 2. pt-query-digest 사용 (Percona Toolkit)
pt-query-digest /var/lib/mysql/slow_query.log > report.txt
쿼리별 평균 실행시간, 호출 횟수, 비효율 쿼리 비율 등을 한눈에 확인할 수 있습니다.

📊 5. MySQL 슬로우 쿼리 로그 예시 분석
# Time: 2025-11-02T10:00:30
# User@Host: app_user[app_user] @ localhost []
# Query_time: 2.431 Lock_time: 0.000 Rows_sent: 10 Rows_examined: 150000
SELECT * FROM orders WHERE status='SHIPPED';
위 쿼리는 단순 조회지만
Rows_examined가 15만 행으로 많습니다.
👉status컬럼에 인덱스를 추가하면 즉시 개선됩니다.
🚀 6. Aurora MySQL에서의 슬로우 쿼리 로그
Aurora는 로그 파일을 EC2처럼 접근할 수 없기 때문에 CloudWatch Logs 와 연동해야 합니다.
설정 단계:
- RDS 콘솔 → 클러스터 선택
- “로그 내보내기” 탭 →
slowquery/mysql-slowquery.log선택 - CloudWatch에서 로그 확인 가능
- Athena + S3 연동 시 쿼리 분석 자동화도 가능
👉 참고: MySQL 공식 문서 – Slow Query Log
👉 참고: AWS Aurora MySQL 성능 튜닝 가이드
🧭 7. 성능 튜닝으로 연결되는 다음 단계
슬로우 쿼리 로그로 병목을 찾았다면, 이제 인덱스 튜닝으로 넘어가야 합니다.
👉 다음 글에서 다룹니다:
MySQL 인덱스 최적화 가이드 (2025) (준비 중)
또한 이전 글 MySQL vs MariaDB vs Aurora 차이점 비교 도 함께 참고하세요.
💬 8. 마무리
슬로우 쿼리 로그는 DB 성능 튜닝의 시작점입니다.
모든 느린 쿼리의 원인은 로그 안에 있습니다.
특히 Aurora 같은 클라우드 DB에서는 CloudWatch와 연동해
자동화된 분석 시스템을 구성하는 것이 가장 효율적입니다.