Ruby on Rails: Modell.alle.jede vs find_by_sql("SELECT * FROM model").jeder?

Ich bin Recht neu auf RoR. In mein controller, ich bin der Iteration über alle Tupel in der Datenbank. Für jede Tabelle, für jede Spalte, die ich verwendet, um zu rufen

SomeOtherModel.find_by_sql("SELECT column FROM model").each {|x| #etc }

das funktionierte gut genug. Wenn ich später änderte sich dies zu

Model.all(:select => "column").each {|x| #etc }

die Schleife beginnt bei etwa der gleichen Geschwindigkeit, aber bremst etwas wie 100-mal langsamer als die der find_by_sql Befehl. Diese Anrufe sollten identisch sein, damit ich wirklich don T wissen, was passiert.

Ich kenne diese Anrufe sind nicht die effizienteste, aber das ist nur ein Zwischenschritt, und ich werde es optimieren mehr, sobald dieser korrekt funktioniert.

Also zu klären: Warum in der Welt nicht aufrufen Modell.alle.jedes laufen, so viel langsamer als mit find_by_sql.jeder?

Dank!

InformationsquelleAutor B_. | 2010-03-30

Schreibe einen Kommentar