Yii解雇多个查询而不是一个

时间:2012-03-13 17:06:33

标签: php yii

尝试减少我网站上的查询数量...为什么单个查询会作为多个查询运行?有办法解决这个问题吗?

例如,从以下代码行(第43行)......

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

我们可以在查询日志中看到4个单独的查询被触发......

Excerpt from query log.

或者我只是读错了?

1 个答案:

答案 0 :(得分:3)

第1,2和第1行上面的截图中的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