千家信息网

MySQL中profiling有什么用

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,这篇文章将为大家详细讲解有关MySQL中profiling有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MySQL5.0版本之后开放了profiling功能
千家信息网最后更新 2024年12月13日MySQL中profiling有什么用

这篇文章将为大家详细讲解有关MySQL中profiling有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

MySQL5.0版本之后开放了profiling功能,通过此功能可以查询某个SQL的详细执行计划。
1、开启profiling
mysql> show variables like '%profil%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| have_profiling | YES |
| profiling | ON |
| profiling_history_size | 15 |
+------------------------+-------+
2、执行SQL,进行测试
mysql> select * from xcredit.tb_sync_job_bak;
3、查看profiles
mysql> show profiles;
+----------+------------+------------------------------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+------------------------------------------------------------------------------+
| 1 | 0.00009600 | set global profiling=1 |
| 2 | 0.00218100 | show variables like '%profil%' |
| 3 | 0.04091100 | select * from xcredit.tb_sync_job_bak where lid<1000 group by lid limit 5000 |
| 4 | 0.00019800 | select * from xcredit.tb_sync_job_bak where lid<1000 group by lid |
| 5 | 0.16355550 | select * from xcredit.tb_sync_job_bak where lid<1000 |
| 6 | 0.00230025 | show variables like '%profil%' |
| 7 | 0.00014375 | select * from xcredit.tb_sync_job_bak group by lid%20 order by lid |
| 8 | 0.00013600 | select * from xcredit.tb_sync_job_bak group by lid%20 order by 1 |
| 9 | 0.00013375 | select * from xcredit.tb_sync_job_bak group by lid%20 |
| 10 | 0.26594500 | select * from xcredit.tb_sync_job_bak |
+----------+------------+------------------------------------------------------------------------------+
4、查看执行计划
mysql> show profile for query 10;
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000053 |
| checking permissions | 0.000005 |
| Opening tables | 0.000014 |
| init | 0.000014 |
| System lock | 0.000006 |
| optimizing | 0.000003 |
| statistics | 0.000010 |
| preparing | 0.000009 |
| executing | 0.000001 |
| Sending data | 0.265498 |
| end | 0.000009 |
| query end | 0.000010 |
| closing tables | 0.000008 |
| freeing items | 0.000258 |
| logging slow query | 0.000036 |
| cleaning up | 0.000011 |
+----------------------+----------+
此查询返回八万多行数据,返回数据量较大,因此出现sending data。

关于"MySQL中profiling有什么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0