2

ARelの「インクルード」などを使用して大幅に高速化できたRailsアプリがあります(考案)

class User < ActiveRecord::Base
   has_many :posts
   scope :eager, includes(:posts => [:rating, :author, {:tags => [:day, {:foo => :bar}]}] )
end

通話中

@posts = current_user.posts.eager

そのページの負荷を大幅に削減し、クエリの数を非常に大幅に削減します。Rails は、最初に 1 つのクエリで投稿を選択することでこれを行います。

select * from posts where ...

次に、コメントごとに 1 つのクエリではなく、1 つのクエリですべての投稿のすべてのコメントを選択します。

select * from comments where post_id in (6,7,8,9,10,...)

grails に相当するものはありますか? 多くの結合を含むクエリを作成できる条件と名前付きクエリに精通していますが、Grails が「IN」演算子を使用していくつかのクエリを生成することを望んでいます。

4

1 に答える 1

1

この問題への参照がいくつか見つかりました: Eager and Lazy FetchingおよびfetchMode

于 2012-12-13T10:56:38.770 に答える