슬로우 쿼리 발견·실행 계획 분석·인덱스 추가·재작성으로 쿼리 튜닝 결
쿼리 튜닝 사례 중 하나는 주문 목록 조회 API 응답 시간이 트래픽 증가 후 급격히 늘어난 문제였습니다. 슬로우 쿼리 로그에서 해당 쿼리를 찾고 EXPLAIN으로 실행 계획을 보니 주문 상태와 사용자 ID를 동시에 필터링하는 구간에서 풀 스캔이 발생하고 있었습니다.
복합 인덱스를 추가했습니다. 사용자 ID와 주문 상태를 조합한 복합 인덱스를 생성하고 나니 인덱스 범위 스캔으로 전환되면서 실행 시간이 수십 배 개선됐습니다. 인덱스 컬럼 순서도 중요해서, 선택도가 높은 컬럼을 앞에 두는 것이 효율을 높였습니다.
쿼리 재작성도 병행했습니다. 서브쿼리로 구성된 집계 부분을 조인 방식으로 변경하면서 옵티마이저가 더 효율적인 실행 계획을 선택했습니다. 같은 결과를 내는 여러 표현 방식 중 실행 계획이 더 좋은 것을 선택하는 연습이 쌓이면서 감이 좋아졌습니다.