例如,我有:
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的学生记录?
这更多是关于表现的问题。我需要知道后一个查询在rails中是否真的更快。
答案 0 :(得分:0)
基本相同(在两种情况下Rails都会使用join
),您可以在服务器控制台中查看查询及其性能并进行比较。要提高效果,请务必在学生表上为school_id
编制索引。