SHOW FIELDS in ActiveRecord vermeiden

8

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 users_addresses

ZEIGEN

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!

    
Allan Grant 21.12.2009, 15:12
quelle

3 Antworten

11

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.

    
klew 21.12.2009, 15:28
quelle
0

Es ist immer noch wichtig zu wissen, wie man es sogar im Produktionsmodus deaktiviert. Für fcgi und mod-rails wird die Startzeit reduziert.

    
deepak 26.06.2010 11:49
quelle
0

Rails 2.x.x hat immer noch Probleme has_and_belongs_to_many

Lesen Sie mehr Ссылка

und Ссылка

    
A B 06.01.2012 01:52
quelle

Tags und Links