【发布时间】:2011-08-31 09:54:18
【问题描述】:
这只是一个关于使用 ruby 和 rails 的 sql 查询性能的快速问题。
基本上我有一个父模型和一堆具有 parent_ID 变量的子模型。 我首先收集所有具有特定条件的父母,然后循环遍历每个父母,找到任何匹配的孩子。
不幸的是,这非常慢,我想知道在优化它方面是否有任何帮助。
@parents = Parent.where(:parent_id => 3) #This is passed in from params
@childrenArray =[]
@parents.each_with_index do |parent, index|
#TOOSLOW
@childrenArray[index] = Child.find(:all,:order=>"id",:conditions =>{:parent_ID=> parent.id})
end
我想的一件事是也许我应该创建一个包含所有要搜索的父 ID 的数组,然后执行类似的操作
child.find_by_parent_ID(myarrayofnumbershere)
但是我不知道这是否会更好。
任何帮助或建议表示赞赏。
我对 SQL 和 ruby 非常陌生。我知道表连接在这里是理想的,但我认为我现在尝试它的开发有点晚了。我还需要提供 2 个单独的数组。一位父母和一位孩子。
【问题讨论】:
-
您使用的是哪个版本的导轨?
标签: sql ruby-on-rails ruby performance optimization