【问题标题】:How to Trace Mysql Slow-query-log-file Entries Using PHP Profiler如何使用 PHP Profiler 跟踪 Mysql 慢查询日志文件条目
【发布时间】:2019-10-18 02:59:11
【问题描述】:

我刚开始使用 PHP 分析器在 php 脚本中查找导致 mysql 查询缓慢的文件。有人建议我使用 xdebug 来跟踪它,与在相同时间戳执行的 php profiler 中的文件相比,使用慢日志文件条目中的时间戳来跟踪它。

我已阅读 xdebug 文档,但找不到此问题的解释。

谁能赐教?

我使用的是 php 7.0、Debian 9。

我的慢查询日志文件条目:

# Thread_id: 222244  Schema: user  QC_hit: No
# Query_time: 51.019708  Lock_time: 0.000119  Rows_sent: 1  Rows_examined: 13295012
# Rows_affected: 0
SET timestamp=1559388099;
SELECT (COUNT(*)) AS `count` 
FROM statistics Statistics WHERE (id >= 1 AND ad_type <> 3);

编辑:

这不是关于 SELECT 语句中的行数,而是关于如何跟踪导致缓慢请求发生的应用程序文件。

【问题讨论】:

标签: php cakephp profiling profiler mysql-slow-query-log


【解决方案1】:

对大型表进行计数的最有效方法是,您应该将计数存储在其他地方的表中,并在需要时增加/减少该值,这样您只需查询一个单元格,而 51 秒的查询时间会少于1 秒。

我知道这感觉像是一件多余的事情,但这是最有效和最佳的方式

周围有一些主题建议查询 INFORMATION_SCHEMA,但考虑到您需要 WHERE 并且其他所有内容都与您在这里的问题一样低效,这根本没有帮助。

您只需要当前计数、存储它的位置、增加/减少它的功能,一切顺利

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2010-10-31
    相关资源
    最近更新 更多