슬로우 쿼리 로그 분석·인덱스 전략·읽기 복제본 분산으로 대규모 트래픽 쿼리 최적화 결
대규모 트래픽 환경에서 쿼리 최적화를 시작한 것은 슬로우 쿼리 로그에서 시간이 오래 걸리는 쿼리를 추려내는 것이었습니다. 전체 쿼리를 최적화하려 하면 우선순위를 잃기 때문에, 가장 빈번하게 호출되면서 느린 쿼리부터 집중했습니다.
인덱스 전략이 가장 큰 개선을 가져왔습니다. EXPLAIN ANALYZE로 실행 계획을 보면서 풀 스캔이 발생하는 지점에 복합 인덱스를 추가했고, 카디널리티가 높은 컬럼을 인덱스 앞에 배치하면 선택도가 좋아진다는 것을 경험했습니다. 단, 쓰기 빈도가 높은 테이블에 인덱스를 과도하게 추가하면 역효과였습니다.
읽기 부하 분산도 병행했습니다. 조회 전용 쿼리는 읽기 복제본으로 라우팅해 주 DB 부하를 줄였고, 캐시 레이어를 추가해 반복 조회 비용을 낮추면서 응답 속도가 눈에 띄게 개선됐습니다.