NestJS 쿼리 최적화는 요청 패턴, SQL 모양, 운영 지표로 판단한다
한 번 고치고 끝나는 작업이 아니라 데이터가 늘 때마다 다시 측정하고 조정하는 반복 과정입니다.
Input: 요청 패턴
- 목록
필터, 정렬, 페이지 크기
- 상세
필요 관계와 컬럼 범위
- 쓰기 포함
transaction 길이와 lock 범위
Tools: SQL 모양
- Index
scan rows 감소
- Join / batch
N+1 왕복 감소
- Projection
전송량과 메모리 감소
- Pagination
대량 조회 제한
Proof: 운영 지표
- EXPLAIN
계획이 index 중심인가
- Latency
p95 응답 시간이 줄었는가
- DB load
CPU, I/O, lock wait가 줄었는가
Monitor
Analyze
Refine
Repeat
핵심: 감으로 인덱스를 추가하지 말고, 작은 변경을 실제 트래픽 지표로 증명한다.