Request shape 화면이 필요한 데이터정말 보여줄 컬럼과 관계만 고른다. 필터와 정렬WHERE, JOIN, ORDER BY가 인덱스 후보가 된다. 대량 조회페이지네이션 없이는 네트워크와 메모리가 먼저 막힌다.
NestJS / ORM layer Repository find편하지만 관계 로딩과 SELECT 범위가 숨겨질 수 있다. QueryBuilderjoin, select, where를 명시해 SQL 모양을 통제한다. 개선 후보projection, join, batch loading, cursor pagination을 선택한다.
Database engine EXPLAINscan 방식, 사용 인덱스, rows 예측을 확인한다. Index읽기는 빨라지지만 쓰기 비용과 저장 공간이 든다. Lock / transaction긴 작업은 다른 요청의 대기 시간으로 보인다.