Gibt es eine Möglichkeit zu verhindern, dass ActiveRecord ein SHOW FIELDS an die Datenbank ausgibt, wenn es nicht benötigt wird?
Ich arbeite an einer datenbankkritischen Anwendung und bemerke gerade, dass bei einer typischen Abfrage mein SELECT 0,5 ms dauert und die zugehörigen SHOW FIELDS 2 ms - 4 mal länger brauchen! Noch wichtiger ist, dass es nicht benötigt wird, da ich bereits die einzige Spalte spezifiziere, die ich abrufen möchte:
UsersAddress.find(:all, :conditions => {:user_id => 1}, :select => :address_id)
UsersAddress Laden (0.5ms) SELECT address_id VON
users_addresses
WHERE (users_addresses
.user_id
= 1)UsersAddress Columns (2.1ms) FELDER AUS
ZEIGENusers_addresses
Zugegeben, das passiert nur jedes Mal, wenn ein Tisch zum ersten Mal berührt wird, aber sollte es nicht komplett vermeidbar sein? Zuallererst ist diese Information bereits in meinem Schema. Zweitens brauche ich es nicht.
Irgendwelche Ideen, wie Sie dies optimieren können, damit Rails keine SHOW FIELDS ausführen wird, wenn sie es wirklich brauchen?
Danke!
Im Produktionsmodus wird es nur einmal nach dem Start eines Servers geladen (nicht bei jeder Anfrage).
Im Entwicklungsmodus wird es bei jeder Anfrage geladen (weil es der Entwicklungsmodus ist und fast jede Anfrage neu startet)
Sie müssen sich also im Produktionsmodus nicht darum kümmern.
Tags und Links ruby-on-rails activerecord