인덱스 최적화 경험+실측 비교로 푸는 결
SQL 튜닝 경험 중 가장 기억에 남는 것은 인덱스 설계를 잘못해서 쿼리가 느려진 경우입니다. WHERE 조건에 자주 쓰이는 컬럼에 인덱스가 없어서, 풀 스캔이 반복되고 있었습니다. EXPLAIN 명령으로 실행 계획을 확인했더니 `Seq Scan`이 반복되는 것이 보였고, 복합 인덱스를 추가한 후 응답 시간이 10초 이상에서 1초 이내로 줄어들었습니다. 대규모 트래픽 환경에서는 인덱스가 잘 걸려 있어도 인덱스 선택율이 낮으면 옵티마이저가 풀 스캔을 선택하는 경우도 있습니다.
ANALYZE 실행으로 통계를 갱신하는 것도 튜닝의 일부라는 것을 그때 배웠습니다. 실행 계획을 읽는 능력이 튜닝의 출발점입니다.