SQLに関するmumei-0のブックマーク (1)

  • [解説] SQLクエリのN+1問題 - Qiita

    ISUCON のブログ記事等で当たり前に出てくる「N+1問題」を知らなかったので、調査した結果です。 TL;DR N+1問題とは、このブログ記事にもう全部書いていますが、 N件のデータ行を持つテーブルをごそっと読みだすのに1回 別のテーブルから、先述のテーブルの各行に紐づくデータを(1件ずつ)読み出すのに計N回 合計でN+1回のクエリを実行している状態です。 (1+N問題と考えた方が理解しやすい) Nが大きいときは処理に非常に時間がかかるため、対応が必要になります。 対応策としては、 JOIN句による表の結合 Eager Loading(必要なデータを事前にロード) の2種類があります。 例 図書館貸出管理システムを考えます。 以下のように、「書籍」テーブルと、図書館の「利用者1」テーブルがあるとします。 各書籍について、借りている人の名前と、年齢を知りたいときを考えます。 欲しいのは

    [解説] SQLクエリのN+1問題 - Qiita
    mumei-0
    mumei-0 2021/10/08
    確かに。“(1+N問題と考えた方が理解しやすい)”
  • 1