Rails 2.3.5 アプリケーションでは、次のようなモデルがあります。
class Foo < ActiveRecord::Base
has_many :bars
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
そして、私が電話しているとき
Foo.all(:include => :bars)
コンソールに次のクエリが表示されます。
SELECT * FROM "foos"
SELECT "bars".* FROM "bars" WHERE ("bars".foo_id IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21))
where句にすべてのfooのIDを含めます。
ID の数が多い場合、これは最適なクエリではないと思います。すべての「バー」をプリロードする必要があります。また、実際には 2 つのモデルではなく、一連のモデルがあります。
熱心な読み込みクエリを次のようにする方法はありますか
SELECT "bars".* FROM "bars"
すべて検索を使用しているときは?