MySQL 分析中可以使用 SET profiling = 1;
设置
查询SHOW PROFILES;
显示每个查询所花费的时间。我想知道这个时间是否只包括服务器上的执行时间,还是还包括将结果发送到前端所需的时间。
谢谢
最佳答案
根据manual状态正在发送数据
是将结果发送到客户端所需的时间。示例:
mysql> SHOW PROFILE FOR QUERY 1;
+--------------------------------+----------+
| Status | Duration |
+--------------------------------+----------+
| starting | 0.000024 |
| Waiting for query cache lock | 0.000005 |
| checking query cache for query | 0.000051 |
| checking permissions | 0.000010 |
| Opening tables | 0.000022 |
| System lock | 0.000012 |
| Waiting for query cache lock | 0.000024 |
| init | 0.000043 |
| optimizing | 0.000008 |
| statistics | 0.000012 |
| preparing | 0.000011 |
| executing | 0.000004 |
| Sorting result | 0.125893 |
| Sending data | 0.000076 | -- here
| end | 0.000005 |
| query end | 0.000002 |
| closing tables | 0.000005 |
| freeing items | 0.000005 |
| Waiting for query cache lock | 0.000001 |
| freeing items | 0.000012 |
| Waiting for query cache lock | 0.000001 |
| freeing items | 0.000001 |
| storing result in query cache | 0.000013 |
| logging slow query | 0.000001 |
| cleaning up | 0.000002 |
+--------------------------------+----------+
更新:使用查询缓存时,状态可能是将缓存结果发送到客户端
。
关于MySQL 分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27123801/