Difference_Between_Includes_And_Joins

joins

  • INNER JOIN が発行される
  • 関連づけとともにレコードを読み込むのではなく、クエリの結果をフィルタするために使われるため、 N+1 クエリを防げない

includes

  • 関連テーブルへの参照があれば #eager_load を、なければ #preload を使う
  • joins よりも速度が落ちる

参考