N+1問題(アソシエーション)
N+1問題とは
アソシエーションでtweetとuserが結びついているとする。
tweetの情報をとって来る場合、userの情報も探して来る必要がある。そのためtweetの情報を持って来るとは別でuserはuserでtweetに紐付いているuser情報を持って来る必要があり、データベースへのアクセス回数が多くなってしまう。そのためアプリのパフォーマンス低下。
解決方法
includeメソッドを使う。
これでtweetとuser1回で持って来れる。
includeに.allは含まれているのでall必要ない。
情報処理が多い場合だから使う場所はindexだけで大丈夫だと思う。
例)
def index @tweets = Tweet.includes(:user) end
#includeしなくてもエラーは起きないため、実感しずらい。