2012-03-13 69 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

相关问题