Eine klassische DB-Abfrage erzeugt unter Rails ein ‘select *’. Logisch, Rails weiß ja nicht, was wir benötigen.
Als Beispiel:
@u = User.find(params[:id])
MySQL-Query:
SELECT * FROM `users` WHERE (`users`.`id` = 54312)
Wir benötigen aber nur den Namen, Permalink und die ID.
Optimierung von Hand:
@u = User.find(params[:id],:select=>['name, permalink,id'])
SELECT name,permalink,id FROM `users` WHERE (`users`.`id` = 54312)
Besser…
Man könnte jetzt alle DB-Abfragen von Hand optimieren. Der Aufwand ist bei einer größeren Rails-Anwendung aber schon heftig.
config.gem "methodmissing-scrooge",:lib=>'scrooge',:source => "http://gems.github.com"
der environment.rb hinzufügen und
rake gems:install
ausführen.
No related posts.