2010-08-09 50 views
0

在查看來自Mongrel的日誌的過程中,我發現了一些我想優化的SQL語句。雖然尋找到這些,我注意到,這些條目有時在他們面前的CACHE,例如:Mongrel CACHE日誌條目,特別是SQL語句的CACHE條目

CACHE (0.0ms) SELECT * FROM `customers` WHERE (`customers`.`id` = 35) 

由於執行時間,我假設雜種真的是緩存此數據。我的問題是如何配置?我一直無法在網上找到關於緩存模型數據的信息;我讀過的大部分內容都與緩存靜態頁面或頁面片段有關。我沒有明確地做任何事情來啓用這個緩存,所以我只是在尋找一個關於如何配置以及如何工作的指針。提前致謝!

回答

1

這實際上並不涉及雜種。 Rails默認在每個控制器動作周圍執行ActiveRecord::Base.cache。這意味着在該操作的範圍內,它將緩存查詢結果並從緩存中提供結果,而不是再次訪問數據庫。您應該在日誌中看到一個相同的查詢(在同一個操作中),而不是以CACHE作爲前綴,後者是存儲結果的原始查詢。

一些更多詳情here

+0

這正是我所期待的。謝謝! – 2010-08-10 00:10:28