요약:
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와 연동해
자동화된 분석 시스템을 구성하는 것이 가장 효율적입니다.
답글 남기기