Web ActiveRecordのpreload/eager_load/joins/incudesの使い方 〜N+1問題回避と関連先を含めた効率の良い絞り込み〜 ActiveRecordのRelationにはpreload/eager_load/joins/includesというメソッドが用意されており、適切な使い方をすることにより余計なSQLクエリを発生させることを防いでパフォーマンス改善が出来るようになっています。 これらを簡単な関連付きモデルが含まれたRailsサンプルプロジェクトを用意して実際に何の問題を解決しようとしているのか、どういうクエリ・振る舞いをしているかを検証してみたいと思います。 結論 細かいことはいいからどう使うのおすすめか結論をまとめておきます: 多重度が多の関連先を持つモデルを関連先も含めて逐次参照すると一覧参照に加えてヒットしたレコード数のクエリが発生してしま
![ActiveRecordのpreload/eager_load/joins/incudesの使い方 〜N+1問題回避と関連先を含めた効率の良い絞り込み〜](https://cdn-ak-scissors.b.st-hatena.com/image/square/600e4505fe4fdde5b52e8178f5195f3ca17067f8/height=288;version=1;width=512/https%3A%2F%2Fsakanasoft.net%2Fwp-content%2Fuploads%2F2019%2F10%2Fassemble_1570015713.jpg)