mysql中profile用法

MySQL5.0.37版本以上支持PROFILING调试功能,让您可以了解SQL语句消耗资源的详细信息。因为它需要调用系统的getrusage()函数,所以只是在Linux/Unix类平台上才能使用,而不能在Windows平台上使用。而且,PROFILING是针对处理进程(process)而不是线程(thread)的,服务器上的其他应用,可能会影响您的调试结果,因此,这个工具适合开发过程中的调试,如果要在生产环境中调试使用,则要注意它的局限性

首先 通过命令打开profile功能:

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

现在想通过profile调试一条查询语句执行的时间

然后 执行以下sql:

mysql> select * from aa;
+----+---------+
| id | content |
+----+---------+
|  1 | NULL    |
|  2 | aaa     |
+----+---------+
2 rows in set (0.00 sec)

最后查询消耗:

mysql> show profile;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000054 |
| checking permissions | 0.000014 |
| Opening tables       | 0.000361 |
| System lock          | 0.000014 |
| init                 | 0.000018 |
| optimizing           | 0.000007 |
| statistics           | 0.000015 |
| preparing            | 0.000010 |
| executing            | 0.000005 |
| Sending data         | 0.000074 |
| end                  | 0.000008 |
| query end            | 0.000007 |
| closing tables       | 0.000020 |
| freeing items        | 0.000048 |
| logging slow query   | 0.000006 |
| cleaning up          | 0.000005 |
+----------------------+----------+
16 rows in set (0.00 sec)

可以看到一条sql执行 需要经过这么多的过程 每一个过程需要执行多少时间 但是这个功能只能看到查询的消耗 如果我执行任何一条命令 我都要知道执行的时间

可以使用命令

mysql> show profiles;
+----------+------------+--------------------+
| Query_ID | Duration   | Query              |
+----------+------------+--------------------+
|        8 | 0.00028275 | select getrusage() |
|        9 | 0.00015925 | SELECT DATABASE()  |
|       10 | 0.00026875 | select getrusage() |
|       11 | 0.00016550 | SELECT DATABASE()  |
|       12 | 0.00066325 | select * from aa   |
+----------+------------+--------------------+
5 rows in set (0.00 sec)

这里 可以设置这个profiles这个表的条数 通过命令 

set profiling_history_size=5; 设置 如果超过五个 第一条被删除 以此类推

转载于:https://www.cnblogs.com/liaomin416100569/p/9331258.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值