Skip to content
Latchkey

N+1 クエリとは?

N+1 クエリは、N 件のアイテムのコレクションを読み込むために1つのクエリを実行し、その後、関連データを取得するために各アイテムごとに追加のクエリを実行して、合計 N+1 件のクエリになるときに発生します。通常はループ内の遅延読み込みから生じます。修正方法は、先読み込みか、すべてを1つのクエリで集める join です。

なぜ重要か

N+1 のパターンは、データが少ない開発環境では問題なく見えますが、クエリ数が結果セットとともに増えるため、規模が大きくなると急激に性能が低下します。早期に見つけることで、遅いページやデータベースの過負荷を防げます。

関連ガイド