ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Mysql] slow query 발생 원인 및 해결 방안을 알아보자!
    DB/Mysql 2025. 4. 22. 11:02
    728x90
    반응형

    MySQL에서 잘 동작하던 쿼리가 갑자기 느려지는 이유와 해결 방안

    MySQL을 운영하다 보면 이전까지 빠르게 실행되던 쿼리가 어느 순간부터 슬로우 쿼리(Slow Query)로 전환되는 경우가 있습니다. 이 글에서는 그러한 현상이 발생하는 주요 원인과 해결 방법을 정리해보았습니다.

    🛠 주요 원인

    1. 데이터 양의 급증
      인덱스를 잘 사용하던 쿼리도 데이터 양이 많아지면서 쿼리 성능이 떨어질 수 있습니다.
    2. 통계 정보(Statistics) 갱신 지연
      MySQL 옵티마이저는 통계 정보를 기반으로 실행 계획을 수립합니다. 통계 정보가 오래되었으면 비효율적인 실행 계획이 수립될 수 있습니다.
    3. 인덱스 손상 또는 누락
      테이블 구조 변경, 인덱스 제거 등의 이유로 기존에 잘 사용되던 인덱스가 더 이상 적용되지 않을 수 있습니다.
    4. 쿼리 캐시 미스
      쿼리 캐시가 비활성화되었거나, 캐시 미스가 발생하여 처음부터 쿼리를 다시 수행해야 하는 경우입니다.
    5. 서버 자원 부족
      CPU, 메모리 등의 자원이 부족해지면 MySQL 전반의 성능이 저하될 수 있습니다.

    ✅ 해결 방안

    1. EXPLAIN으로 실행 계획 확인
      느려진 쿼리에 대해 EXPLAIN을 실행하여 인덱스 사용 여부와 접근 방식(Full Table Scan 등)을 확인합니다.
    2. 인덱스 재설정 또는 추가
      적절한 인덱스를 추가하거나 기존 인덱스를 점검하고 재구성합니다.
    3. ANALYZE TABLE 또는 OPTIMIZE TABLE 실행
      통계 정보를 갱신하거나 테이블을 최적화하여 쿼리 성능을 개선할 수 있습니다.
    4. 슬로우 쿼리 로그 확인
      slow_query_log를 활성화하여 느려진 쿼리들을 기록하고, 병목 구간을 파악합니다.
    5. 서버 리소스 모니터링
      htop, iostat, vmstat 등의 툴을 사용해 시스템 리소스 사용량을 점검하고 필요 시 리소스를 증설합니다.

    📌 마무리

    MySQL 쿼리 성능은 다양한 요소의 영향을 받기 때문에, 느려진 원인을 종합적으로 분석해야 합니다. 위의 점검 리스트를 통해 문제를 진단하고 적절한 해결 방안을 적용해보세요.

    728x90
    반응형

    댓글

Designed by Tistory.