MySQL 如何在不将查询结果输出到控制台的情况下检查MySQL查询所用的时间?

MySQL 如何在不将查询结果输出到控制台的情况下检查MySQL查询所用的时间?

要检查这个,我们需要具有剖析信息,该信息指示在当前会话期间执行的语句的资源使用情况。剖析信息可以通过 SHOW PROFILESHOW PROFILES 语句获得。

在运行这些语句之前,必须将剖析会话变量设置为1,如下所示−

mysql> set profiling = 1;
查询 OK,受影响行数为0(0.00秒)

现在,如果我们运行 SHOW PROFILES 语句,那么它将显示最近发送到服务器的语句列表以及持续时间和查询 ID。

mysql> show profiles;
+----------+------------+--------------------------------------+
| Query_ID | Duration   | Query                                |
+----------+------------+--------------------------------------+
| 1        | 0.01602200 | drop table if exists t1              |
| 2        | 0.57223450 | create table t1(id int)              |
| 3        | 0.00015425 | show profile for query1              |
| 4        | 0.22945050 | create table e1(id int)              |
| 5        | 0.09977025 | insert into e1(id) values(3),(4),(5) |
+----------+------------+--------------------------------------+
共 5 行(0.00秒)

现在假设我们想检查特定查询的持续时间,那么我们可以运行 SHOW PROFILE ,对于 查询号码 语句。例如,如果我们为查询编号 = 5运行该语句,则输出将如下所示−

mysql> show profile for query 5;
+------------------------------+--------------+
| Status                       | Duration     |
+------------------------------+--------------+
| starting                     | 0.000138     |
| checking permissions         | 0.000024     |
| Opening tables               | 0.000057     |
| System lock                  | 0.035186     |
| init                         | 0.000035     |
| update                       | 0.021484     |
| Waiting for query cache lock | 0.000021     |
| update                       | 0.000005     |
| end                          | 0.000024     |
| query end                    | 0.042700     |
| closing tables               | 0.000017     |
| freeing items                | 0.000076     |
| logging slow query           | 0.000003     |
| cleaning up                  | 0.000002     |
+------------------------------+--------------+
14 行(0.00秒)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程