Я довольно новичок в RoR. В моем контроллере я перебираю каждый кортеж в базе данных. Для каждой таблицы, для каждого столбца я звонил
SomeOtherModel.find_by_sql("SELECT column FROM model").each {|x| #etc }
, который работал достаточно хорошо. Когда я позже изменил это на
Model.all(:select => "column").each {|x| #etc }
цикл начинается примерно с той же скоростью, но быстро замедляется примерно до 100 раз медленнее, чем команда find_by_sql. Эти звонки должны быть идентичны, поэтому я действительно не знаю, что происходит.
Я знаю, что эти вызовы не самые эффективные, но это всего лишь промежуточный шаг, и я буду оптимизировать его еще раз, когда он будет работать правильно.
Итак, поясним: почему в мире вызов Model.all.each выполняется намного медленнее, чем использование find_by_sql.each?
Спасибо!