显然我们在评价一条SQL语句的好坏时最直观的评价指标就是它执行时长了。那我们要如何得知一条SQL语句的执行时间呢?Mysql5.0之后的版本提供了Query Profiler 功能,它不仅可以计算出每一条Query的执行时间,并且它还可以显示这条Query的性能问题,例如执行这条SQL消耗了到少CPU、IO等资源,以便于我们针对性的对其进行性能调优。
Profiling默认是关闭状态,我们先来查看一下此功能有没有开启:
mysql -uroot -p
mysql> show variables like 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling | OFF |
+---------------+-------+
1 row in set, 9 warnings (0.00 sec)
mysql> set profiling=1
现在我们就可以来使用Profiling了。在开启profiling功能后,MySQL就会自动记录所有执行的 Query 的 profile 信息。
mysql> show profiles;
获取系统中所有Query的profile信息(默认显示最近15条,Query_ID依次递增)
—
show profile cpu,block io for query [Query_ID];
在开发阶段,出现慢SQL,我们可以先通过explain
语句查看该SQL的执行情况;
例如,这里准备了一张表test_user,想要查询地区(region_id)为的user_name:
explain select user_name from test_user WHERE region_id = ;
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务