ユーザー、関係、投稿、いいねを含むアプリがあります。
私のモデルは次のとおりです。
class User
has_many :posts
has_many :likes
has_many :relationships, :foreign_key => "follower_id", :dependent => :destroy
end
class Post
belongs_to :user
has_many :likes
end
class Like
belongs_to :user
belongs_to :post
end
class Relationship
belongs_to :follower, :class_name => "User"
belongs_to :followed, :class_name => "User"
end
だから私は私の現在の投稿を好きな少なくとも100人のユーザーを見つけたいです:
friends = User.find(user.followers).likes.where(:post => @post, :limit => 100)
DBにユーザー、投稿、いいねなどがたくさんある場合、これは単純ですが最適化されていないクエリです。
クエリ(または複数のモデル)を最適化して、速度を上げ、クエリの実行時間を短縮するにはどうすればよいですか?