大量额外查询CakePHP

时间:2014-03-18 08:12:53

标签: mysql cakephp

340我现在正在重建一个cakephp版本并试图找出所有额外的时间和内存等等,现在我只是想了解什么&#39发生在这里

我发现在每个页面加载时都有类似30-40个mysql调用:

SELECT CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.COLLATIONS WHERE COLLATION_NAME = ?;

我无法真正找到原因和地点,这是蛋糕所需要的东西,还是老程序员的粉丝,或者这就像"无论什么"?

---------------编辑-----------------

我现在找到了有问题的查询 核心文件:

lib/Cake/Model/Datasource/Database/mysql.php

和功能:

getCharsetName ($name)
然而,我无法找到这个名称的地点或原因

1 个答案:

答案 0 :(得分:1)

听起来模式缓存已被禁用,或者由于某种原因无效。

检查Model::$cacheSources,理想情况下应该是true。如果它已经是true,那么您需要进行一些进一步的调试,检查正在调用getCharsetName()的位置,例如通过异常堆栈跟踪:

$e = new Exception();
debug($e->getTraceAsString());

也许你的应用程序是显式调用方法,谁知道。还要检查$name参数的传递内容。

确保/tmp/cache/models/可写且可读。