N+1 QUERY

N+1은 목록 조회 뒤 연관 접근이 반복될 때 생긴다

처음 쿼리 1번은 정상처럼 보이지만, 각 행의 연관 데이터를 접근하는 순간 추가 SELECT가 반복된다.

List queryLazy accessRound trips
orders = findRecentOrders()     -- 1 query
for order in orders:
  order.customer.name       -- N extra queries

결과: 1 + N번 DB 왕복
small테스트5건이면 6번 쿼리라 눈에 잘 안 띔
scale운영수백 건이면 네트워크 왕복과 DB 부하 급증
observe탐지쿼리 로그, SQL count, APM span으로 확인