-
[Mysql] slow query 발생 원인 및 해결 방안을 알아보자!DB/Mysql 2025. 4. 22. 11:02728x90반응형
MySQL에서 잘 동작하던 쿼리가 갑자기 느려지는 이유와 해결 방안
MySQL을 운영하다 보면 이전까지 빠르게 실행되던 쿼리가 어느 순간부터 슬로우 쿼리(Slow Query)로 전환되는 경우가 있습니다. 이 글에서는 그러한 현상이 발생하는 주요 원인과 해결 방법을 정리해보았습니다.
🛠 주요 원인
- 데이터 양의 급증
인덱스를 잘 사용하던 쿼리도 데이터 양이 많아지면서 쿼리 성능이 떨어질 수 있습니다. - 통계 정보(Statistics) 갱신 지연
MySQL 옵티마이저는 통계 정보를 기반으로 실행 계획을 수립합니다. 통계 정보가 오래되었으면 비효율적인 실행 계획이 수립될 수 있습니다. - 인덱스 손상 또는 누락
테이블 구조 변경, 인덱스 제거 등의 이유로 기존에 잘 사용되던 인덱스가 더 이상 적용되지 않을 수 있습니다. - 쿼리 캐시 미스
쿼리 캐시가 비활성화되었거나, 캐시 미스가 발생하여 처음부터 쿼리를 다시 수행해야 하는 경우입니다. - 서버 자원 부족
CPU, 메모리 등의 자원이 부족해지면 MySQL 전반의 성능이 저하될 수 있습니다.
✅ 해결 방안
- EXPLAIN으로 실행 계획 확인
느려진 쿼리에 대해EXPLAIN
을 실행하여 인덱스 사용 여부와 접근 방식(Full Table Scan 등)을 확인합니다. - 인덱스 재설정 또는 추가
적절한 인덱스를 추가하거나 기존 인덱스를 점검하고 재구성합니다. - ANALYZE TABLE 또는 OPTIMIZE TABLE 실행
통계 정보를 갱신하거나 테이블을 최적화하여 쿼리 성능을 개선할 수 있습니다. - 슬로우 쿼리 로그 확인
slow_query_log
를 활성화하여 느려진 쿼리들을 기록하고, 병목 구간을 파악합니다. - 서버 리소스 모니터링
htop, iostat, vmstat 등의 툴을 사용해 시스템 리소스 사용량을 점검하고 필요 시 리소스를 증설합니다.
📌 마무리
MySQL 쿼리 성능은 다양한 요소의 영향을 받기 때문에, 느려진 원인을 종합적으로 분석해야 합니다. 위의 점검 리스트를 통해 문제를 진단하고 적절한 해결 방안을 적용해보세요.
728x90반응형'DB > Mysql' 카테고리의 다른 글
[Mysql] 조인 테이블 조회시 드라이빙? 드리븐? 테이블 설명 및 STRAIGHT_JOIN 힌 (0) 2025.04.22 [Mysql] 샤딩과 파티셔닝에 대해 알아보자! (0) 2025.04.22 [Mysql] 인덱스는 어떻게 동작할까? (1) 2025.04.17 [Mysql] 트랜잭션과 ACID 이해하기! (0) 2025.04.15 [Mysql] 인덱스 생성 시 고려 사항 (테이블, 쿼리 예제) (0) 2025.04.15 - 데이터 양의 급증