VERIFY BEFORE / AFTER

쿼리 최적화는 배포 후 숫자가 좋아져야 끝난다

인덱스 추가나 join 변경은 코드 리뷰로 끝나지 않는다. 기준선, 제한 배포, 비교 지표, 되돌림 조건이 함께 있어야 한다.

사용자 기준p95 응답 시간과 에러율이 내려가야 한다.
DB 기준rows read, CPU, I/O, lock wait가 줄어야 한다.
운영 기준쓰기 지연이나 인덱스 부작용이 없어야 한다.
1Baseline변경 전 slow query와 p95를 저장한다.
2PlanEXPLAIN으로 기대 개선을 문서화한다.
3Canary일부 트래픽이나 낮은 부하 시간에 먼저 적용한다.
4Compare전후 지표를 같은 기간과 조건으로 비교한다.
5Decide개선이 없거나 부작용이 크면 되돌린다.
지표
좋은 변화
나쁜 신호
다음 행동
query count
감소
N+1 유지
join/batch 재검토
rows read
감소
full scan 지속
인덱스/조건 수정
write latency
유지
증가
인덱스 수 축소
Keeplatency와 DB 부하가 같이 좋아졌다.
Roll back읽기는 좋아졌지만 쓰기나 lock이 나빠졌다.
Iterate효과가 작으면 데이터 접근 패턴을 다시 본다.