MySQL如何利用profiling分析SQL查询语句

发布时间:2020-08-08 07:35:42 作者:chenfeng
来源:ITPUB博客 阅读:174
查看profiling是否开启:
mysql> select @@profiling;
+-------------+
| @@profiling |
+-------------+
|           0 |
+-------------+
1 row in set (0.00 sec)


开启profiling:
mysql> set profiling=1;
Query OK, 0 rows affected (0.00 sec)

mysql> select @@profiling;
+-------------+
| @@profiling |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

执行若干条SQL查询:
mysql> use mysql
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

mysql> select host,user,Password from user limit 10;
+-----------+-----------------+-------------------------------------------+
| host      | user            | Password                                  |
+-----------+-----------------+-------------------------------------------+
| localhost | root            | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| %         | chenfeng        | *716E7D76E850A91A8311F35B6BFB1213B751F230 |
| %         | test@localhost  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| %         | sa@localhost    | *4D0DD2673C1DE57138354E81A957460B774C4BC2 |
| %         | admin@localhost | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 |
| localhost | dsf             | *AFED783E50FCEF7B1C89AC89C6E1A0405BD7F313 |
| localhost | dsf1            | *98D1D8D997EA32BABDFEEC2EBB62BB6D010036C6 |
| %         | dsf2            | *0007B182797FAD2A8A37C3F73A011BBD36C49857 |
+-----------+-----------------+-------------------------------------------+
8 rows in set (0.00 sec)

查询上述语句的Profiling情况:
mysql> show profiles;
+----------+------------+----------------------------------------------+
| Query_ID | Duration   | Query                                        |
+----------+------------+----------------------------------------------+
|        1 | 0.00012600 | select @@profiling                           |
|        2 | 0.00018450 | SELECT DATABASE()                            |
|        3 | 0.00011950 | select database()                            |
|        4 | 0.11296025 | show columns from user                       |
|        5 | 0.00038725 | select host,user,Password from user limit 10 |
+----------+------------+----------------------------------------------+
14 rows in set (0.00 sec)

查看Query_ID=5语句的I/O消耗情况:
mysql> show profile block io for query 5;
+--------------------------------+----------+--------------+---------------+
| Status                         | Duration | Block_ops_in | Block_ops_out |
+--------------------------------+----------+--------------+---------------+
| starting                       | 0.000018 |         NULL |          NULL |
| Waiting for query cache lock   | 0.000003 |         NULL |          NULL |
| checking query cache for query | 0.000077 |         NULL |          NULL |
| checking permissions           | 0.000009 |         NULL |          NULL |
| Opening tables                 | 0.000020 |         NULL |          NULL |
| System lock                    | 0.000014 |         NULL |          NULL |
| init                           | 0.000020 |         NULL |          NULL |
| optimizing                     | 0.000005 |         NULL |          NULL |
| statistics                     | 0.000011 |         NULL |          NULL |
| preparing                      | 0.000009 |         NULL |          NULL |
| executing                      | 0.000003 |         NULL |          NULL |
| Sending data                   | 0.000071 |         NULL |          NULL |
| end                            | 0.000004 |         NULL |          NULL |
| query end                      | 0.000002 |         NULL |          NULL |
| closing tables                 | 0.000011 |         NULL |          NULL |
| freeing items                  | 0.000101 |         NULL |          NULL |
| logging slow query             | 0.000006 |         NULL |          NULL |
| cleaning up                    | 0.000004 |         NULL |          NULL |
+--------------------------------+----------+--------------+---------------+
18 rows in set (0.00 sec)

查看Query_ID=5语句的CPU消耗情况:
mysql> show profile cpu for query 5;
+--------------------------------+----------+----------+------------+
| Status                         | Duration | CPU_user | CPU_system |
+--------------------------------+----------+----------+------------+
| starting                       | 0.000018 | 0.000000 |   0.000000 |
| Waiting for query cache lock   | 0.000003 | 0.000000 |   0.000000 |
| checking query cache for query | 0.000077 | 0.000000 |   0.000000 |
| checking permissions           | 0.000009 | 0.000000 |   0.000000 |
| Opening tables                 | 0.000020 | 0.000000 |   0.000000 |
| System lock                    | 0.000014 | 0.000000 |   0.000000 |
| init                           | 0.000020 | 0.000000 |   0.000000 |
| optimizing                     | 0.000005 | 0.000000 |   0.000000 |
| statistics                     | 0.000011 | 0.000000 |   0.000000 |
| preparing                      | 0.000009 | 0.000000 |   0.000000 |
| executing                      | 0.000003 | 0.000000 |   0.000000 |
| Sending data                   | 0.000071 | 0.000000 |   0.000000 |
| end                            | 0.000004 | 0.000000 |   0.000000 |
| query end                      | 0.000002 | 0.000000 |   0.000000 |
| closing tables                 | 0.000011 | 0.000000 |   0.000000 |
| freeing items                  | 0.000101 | 0.000000 |   0.000000 |
| logging slow query             | 0.000006 | 0.000000 |   0.000000 |
| cleaning up                    | 0.000004 | 0.000000 |   0.000000 |
+--------------------------------+----------+----------+------------+
18 rows in set (0.00 sec)

mysql>
推荐阅读:
  1. MongoDB Database Profiling
  2. 利用MySQL嵌套查询语句案例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql 分析 利用

上一篇:Flutter Widgets 对话框-Dialog

下一篇:详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》