是否有类似于T-SQL的Profiler,即用于跟踪MYSQL查询的SQL Server。
我正在使用Windows,XAMPP MySQL。我有这个PHP命令是如此简单,但它没有正确更新。我想看看它是否正常运行,所以我想像在MSSQL中一样跟踪它。
答案 0 :(得分:2)
MySQL有一个内置的分析器,它可以让你看到非常详细的查询部分花了多少时间。
要启用它,请使用以下语句:
SET profiling = 1;
然后是这些步骤:
(1)执行您的查询。
(2)找出用于分析的查询ID:
SHOW PROFILES;
它会给你这样的东西:
Query_ID | Duration | Query
---------+-----------+-----------------------
2 | 0.0006200 | SHOW STATUS
3 | 0.3600000 | (your query here)
... | ... | ...
现在您知道查询ID是(3)。
(3)描述查询。
SHOW PROFILE FOR QUERY 3; // example
这将返回详细信息,可能如下所示:
Status | Duration
--------------------------------+-------------------
starting | 0.000010
checking query cache for query | 0.000078
Opening tables | 0.000051
System lock | 0.000003
Table lock | 0.000008
init | 0.000036
optimizing | 0.000020
statistics | 0.000013
preparing | 0.000015
Creating tmp table | 0.000028
executing | 0.000602
Copying to tmp table | 0.000176
Sorting result | 0.000043
Sending data | 0.080032
end | 0.000004
removing tmp table | 0.000024
end | 0.000006
query end | 0.000003
freeing items | 0.000148
removing tmp table | 0.000019
closing tables | 0.000005
logging slow query | 0.000003
cleaning up | 0.000004
在此示例中,大部分时间实际上是花费将数据从服务器发送回客户端。