これはなに? preload, eager_load, include, joins が実際にどういうSQLを吐くかを確かめた。 ※Rails4/5両方で確認。 説明用テーブルについて 説明に使用している各テーブルは blogs ← entries ← comments という感じにFK参照している。DDLは最後の方に記載。 いきなりまとめ preload SELECT複数回(親子で1回ずつ) 子テーブルでの絞り込みは不可 eager_load LEFT OUTER JOIN 子/孫テーブルでの絞り込みも可能 include preloadとeager_loadのハイブリッド 絞り込み条件なし OR 親テーブルへの絞り込みのみの場合 => preload 子/孫テーブルへの絞り込み条件が指定されている場合 => eager_load joins ※これだけ少し毛色が異なる INNER JO