2018-05-12 12:36:36
概要N+1問題の説明と対応についてまとめる。
N+1問題とは
全てのレコードの取得に1個+レコード文だけのN個のSQLを発行してしまう問題
N+1というより1+Nと解釈したほうがわかりやすい
例
一覧表示用のデータを取得するケース
一覧用の全データを取得するSELECTを1回発行(Nレコード返ってくる)
Nレコードの関連データ取得のためにSELECTをN回発行
対応
join
SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."...
データベース
N+1