Это просто быстрый вопрос производительности в запросе sql с использованием ruby и rails.
В основном у меня есть родительская модель и группа детей, у которых есть переменная 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
Одна вещь, которую я подумал, возможно, я должен сделать массив всех родительских идентификаторов дляискать и затем делать что-то вроде
child.find_by_parent_ID (myarrayofnumbershere)
Однако я не знаю, будет ли это лучше.
Любая помощь или совет приветствуются.
Я очень плохо знаком с SQL и ruby.Я знаю, что объединение таблиц было бы идеальным здесь, но я думаю, что немного опоздал в своем развитии, чтобы попробовать это сейчас.Также мне нужно обслуживать до 2 отдельных массивов.один из родителей и один из детей.