2

我有一个生产 CakePHP 站点,我需要在其中对慢速 SQL 查询进行故障排除。我想访问 CakePHP 使用实际 SQL 查询、执行时间等创建的出色表,但我无法在生产站点上将 DEBUG 级别设置为 3。

我想这很简单,但我似乎无法弄清楚如何获取特定脚本的此信息并对其进行处理,例如将其保存到日志文件中。

4

3 回答 3

4

这篇文章会帮助你。

如果您有权访问 MySQL 配置文件,则可以通过启用 log-slow-queries 设置来记录慢查询。

于 2010-10-12T21:56:22.940 回答
2

对于 Cake 1.3(不确定这是否适用于 1.2),请查看/cake/libs/view/elements/sql_dump.ctp并根据您的需要进行调整:

$sources = ConnectionManager::sourceList();

foreach ($sources as $source) {
    $db =& ConnectionManager::getDataSource($source);
    if (!$db->isInterfaceSupported('getLog')) {
        continue;
    }

    $log = $db->getLog();

    // examine $log...
}
于 2010-10-13T01:18:05.217 回答
0

DebugKit是你的朋友。应该有适用于 Cake 1.3、2.x 和 3.x 的版本。它有一个漂亮的工具栏,显示所有 SQL 查询以及运行每个查询所花费的时间。

https://github.com/cakephp/debug_kit

于 2015-03-10T22:14:58.663 回答