N+1問題

N+1問題について

何度もSQLが発行されて、パフォーマンスが低下すること

N+1について詳しく

f:id:uuuuuDi_3712:20220116011207p:plain ownersテーブルとcatsテーブルの2つがあるとする すべてのownersのcats一覧を表示する場合、まずallメソッドですべてのownersを取得する、その後上記のようにviewに記述 するとcatsテーブルに4回アクセスしている
これにより、ownersテーブルへのアクセス1回に対して、関連するテーブルがN回発行されている1+Nの状況を「N+1問題」と言う

解決法

上記の例のallをincludeに変更すると,viewのアクセス数が1回に減り、N+1問題が解決できる f:id:uuuuuDi_3712:20220116011759p:plain