Query Analysis

느린 쿼리 개선 순서

TypeORM 로깅으로 실제 SQL을 확인하고 `EXPLAIN`으로 병목을 찾은 뒤, 인덱스와 JOIN, SELECT 범위를 조정해 다시 측정한다.

측정 기반 개선 루프

log → explain → tune
1

SQL 수집

ORM 로깅과 느린 쿼리 로그로 어떤 요청이 DB 시간을 쓰는지 찾는다.

2

실행 계획 확인

`EXPLAIN`으로 인덱스 사용 여부와 스캔 범위, JOIN 순서를 읽는다.

3

코드 조정

필요한 컬럼만 선택하고, N+1은 명시적 JOIN이나 relations로 줄인다.

4

재측정

변경 전후 응답 시간과 DB 부하를 비교해 실제 개선인지 확인한다.

Seq Scan

인덱스 후보

WHERE와 ORDER BY 컬럼이 반복되면 복합 인덱스를 검토한다.

N+1

관계 로딩 조정

같은 패턴의 SELECT가 반복되면 JOIN 전략을 명시한다.

wide row

SELECT 범위 축소

화면에 필요한 필드만 가져오면 네트워크와 메모리 비용이 줄어든다.