Files
document-haness/docs/n+1liner/final/assets/diagrams/nplus1-query-fanout/nplus1-query-fanout.alt.md
T

1.5 KiB
Raw Blame History

반환 부모 수 N이 컬렉션 초기화와 자식 SELECT 횟수를 결정한다

Alternative text

FeedItem N개를 반환하는 loadFeed 요청이 컬렉션 초기화 N회와 Highlight SELECT N회로 이어지는 인과 흐름도.

Long description

왼쪽의 loadFeed 요청은 한 페이지에서 N개의 FeedItem을 반환한다. 매핑이 각 부모의 Highlight 컬렉션에 접근하면 컬렉션 초기화가 부모마다 한 번씩 일어나 총 N회가 된다. 현재 기준선에서는 배치나 서브셀렉트가 없어 초기화 한 번마다 Highlight SELECT도 한 번 실행되므로 추가 조회가 N회 발생한다. 각 SELECT는 해당 부모의 Highlight 자식 행을 전부 읽는다.

Elements and evidence

  • loadFeed(0, N) → FeedItem N개 (request): 한 요청에서 반환한 부모 수 N이 N+1 증가 계수가 되는 피드 조회. Evidence: L382L385, L455L456.
  • Highlight 컬렉션 초기화 N회 (operation): 각 FeedItem의 지연 컬렉션 접근이 부모마다 한 번의 초기화를 만든 결과. Evidence: L374L375, L431L431, L437L439.
  • Highlight SELECT N회 (query): 배치와 서브셀렉트가 없는 기준선에서 컬렉션 초기화마다 실행되는 자식 SELECT. Evidence: L374L375, L437L442.

Relationships

  • Highlight 컬렉션 초기화 N회 → Highlight SELECT N회: SELECT 실행. Evidence: L374L375, L437L439.
  • loadFeed(0, N) → FeedItem N개 → Highlight 컬렉션 초기화 N회: 컬렉션 접근. Evidence: L437L439.