2013-03-30 108 views
0

在Web調試工具欄中,我看到了109個SQL查詢,用於我的index.php。如何緩存原則查詢?

一個查詢中使用40倍:

Doctrine::getTable('Configuration')->getConfiguration(); 

這是因爲許多部件和動作:

public function executeImpress(sfWebRequest $request) { 
    Doctrine::getTable('Configuration')->getConfiguration(); 
} 

public function executeRightMenu() { 
    Doctrine::getTable('Configuration')->getConfiguration(); 
} 

public function executeLeftMenu() { 
    Doctrine::getTable('Configuration')->getConfiguration(); 
} 

...

我希望我可以在緩存這個調用請求級別,以便此查詢不會被解僱40次而是解僱1次。

也許你專家的人有一個提示,我如何避免討厭的repaeting SQL查詢

回答

2

它已經有一段時間我沒有使用Symfony的,但如果你的菜單是非常多的時間相同的99% ,爲什麼不把它放到一個配置文件而不是數據庫中(我發現xml/yml樹結構很好,而且速度很快)?或者,如果你的表不是那麼大,將它保存到一個全局變量中並在每次調用配置時重用它?

而且,學說結果緩存,我發現本手冊(對應的symfony版本):Advanced Doctrine Usage

+0

謝謝。閱讀和閱讀後,我決定使用單身課程。你的建議也是很好的方法。 +1 –

+1

ResultCache是​​一個好主意。 – j0k