1

是否有像 T-SQL 中的 Profiler 即 SQL Server 来跟踪 MYSQL 的查询。

我正在使用 Windows,XAMPP MySQL。我有这个简单的 PHP 命令,但它没有正确更新。我想看看它是否运行正常,所以我想像在 MSSQL 中一样跟踪它。

4

1 回答 1

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

在这个例子中,大部分时间实际上是花在将数据从服务器发送回客户端。

于 2013-04-19T04:23:46.330 回答