有什麼辦法可以防止ActiveRecord在不需要時向數據庫發佈SHOW FIELDS?避免在ActiveRecord中顯示字段
我正在研究數據庫性能的關鍵應用程序,只是注意到,在典型的查詢中,我的SELECT需要0.5毫秒,相關的SHOW FIELDS需要2毫秒 - 4倍的時間!更重要的是,它不是必要的,因爲我已經指定唯一的專欄中,我要檢索:
UsersAddress.find(:all, :conditions => {:user_id => 1}, :select => :address_id)
UsersAddress負荷(0.5毫秒)SELECT ADDRESS_ID FROM
users_addresses
WHERE(users_addresses
user_id
= 1)UsersAddress列(2.1ms)SHOW FIELDS FROM
users_addresses
當然,這只是每次發生一次有些表是第一次觸及,但不應該完全避免嗎?首先,該信息已經在我的模式中。其次,我不需要它。
任何想法如何優化,使Rails不會運行SHOW FIELDS,除非它確實需要它嗎?
謝謝!
感謝。我想我不會爲此擔心。有道理爲什麼它會檢查開發模式..萬一我改變了我的模型。 – 2009-12-24 09:52:57
你注意到的是'cache_classes = false'的一部分。 – Eric 2012-01-06 03:50:11