如何使用PHP Profiler跟踪Mysql慢查询日志文件条目

时间:2019-06-02 05:15:18

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

我刚开始使用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语句中的行无关,而与如何跟踪导致缓慢请求发生的应用程序文件有关。

1 个答案:

答案 0 :(得分:0)

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

我知道做起来很多余,但这是最有效,最优化的方法

围绕着一些主题,这些主题建议查询INFORMATION_SCHEMA,但是鉴于您对WHERE的需求,这完全没有帮助,其他所有问题与您在此遇到的问题一样无效。

您需要的只是当前计数,存储它的位置,增加/减少它的功能,您就可以了