是否有像 T-SQL 中的 Profiler 即 SQL Server 来跟踪 MYSQL 的查询。
我正在使用 Windows,XAMPP MySQL。我有这个简单的 PHP 命令,但它没有正确更新。我想看看它是否运行正常,所以我想像在 MSSQL 中一样跟踪它。
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
在这个例子中,大部分时间实际上是花在将数据从服务器发送回客户端。