반복 SQL과 예상보다 큰 SELECT를 찾습니다.
쿼리 최적화는 로그, 실행 계획, 지표를 반복해서 맞추는 루프다
느린 SQL을 찾고, DB가 어떻게 읽는지 본 뒤, 수정 후 실제 latency와 리소스가 좋아졌는지 다시 확인합니다.
index 사용, rows 추정, scan 방식을 읽습니다.
CPU, I/O, lock, connection 대기를 봅니다.
느린 지점 포착
API latency와 slow query log에서 후보 SQL을 분리합니다.
실행 계획 읽기
풀 스캔, 임시 정렬, 과도한 rows를 확인합니다.
쿼리 모양 수정
index, join, select, pagination 범위를 조정합니다.
전후 비교
p95, query count, rows read, DB 리소스를 비교합니다.
index lookup인지 full scan인지 확인합니다.
읽을 것으로 예상한 행 수가 과도한지 봅니다.
sort, temp table, filter 조건을 추적합니다.
핵심: 수정 전후 숫자를 남겨야 최적화가 감이 아니라 검증 가능한 변경이 된다.