2012-03-13 34 views
2

試圖減少我的網站上的查詢數量......爲什麼單個查詢會作爲多個查詢運行?有沒有辦法來解決這個問題?Yii發射多個查詢而不是一個

例如,從下面的代碼行(第43行)......

$model = Menu::model()->findAll(); 

我們可以在我的查詢日誌4個單獨的查詢被解僱看到...

Excerpt from query log.

或者我只是讀這個錯誤?

回答

3

第1,2行& 4在你上面的截圖中正在做數據庫查詢。

Yii中的ActiveRecord在查詢之前確定了SHOW COLUMNS FROM <table>SHOW CREATE TABLE <table>,因此它知道該表具有哪些列/列類型。在生產模式下,您可以啓用架構緩存以減少這些查詢:

http://www.yiiframework.com/doc/blog/1.1/en/final.deployment#enabling-schema-caching

+0

謝謝。快速提問,當我添加''cache'=> array('class'=>'CDbCache'...'它被炸掉了。 .CApcCache'...'它工作了。爲什麼第一個不能工作? – 2012-03-13 18:57:28

+0

使用CDbCache顯示任何錯誤消息嗎?只要你的'DB'配置正確並且你已經創建了[cache table(或者讓Yii創建它適合你)](http://www.yiiframework.com/doc/api/1.1/CDbCache#autoCreateCacheTable-detail)它應該工作 – pjumble 2012-03-13 19:05:13

+1

目前的yii版本有一個問題,將在1.1.11中修復。當你使用CDbCache和yii無法連接到數據庫時,它會死循環:https://github.com/yiisoft/yii/issues/454 – cebe 2012-03-13 21:19:26

相關問題