0

たとえば、私は持っています:

class School < ActiveRecord::Base
  has_many :students
end

one_school = School.first

使用する間に速度の違いはありますか:

Student.find :all, :conditions => { :first_name => "John", :school_id => one_school.id }

one_school.students.find :all, :conditions => { :first_name => "John" }

「one_school.students.find」を呼び出すと、すべての生徒のレコードが反復されるのか、それとも one_school のみに属する生徒のレコードが反復されるのか疑問に思っていました。

これは、パフォーマンスに関するより多くの質問です。後者のクエリがレールで本当に高速かどうかを知る必要があります。

4

1 に答える 1

0

これは基本的に同じです (Rails はjoinどちらの場合も a を使用します)。サーバー コンソールでクエリとそのパフォーマンスを確認して比較できます。パフォーマンスを向上させるschool_idには、学生テーブルにインデックスを作成してください。

于 2013-05-28T09:32:44.983 に答える