本节介绍show profile句子,查看trace优化器。了解即可。

show profile分析SQL

Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持。

show profiles 能够在做SQL优化时帮助我们了解时间都耗费到哪里去了。。。

通过 have_profiling 参数,能够看到当前MySQL是否支持profile:

select @@have_profiling;

-- 如果不支持,开启profiling 开关; 
set profiling=1; 

查看是否支持

结果

通过show profile for query query_id语句可以查看到该SQL执行过程中每个线程的状态和消耗的时间,例如:

show profile for query 62;

trace分析优化器

以下操作都要在命令窗口中执行。

MySQL5.6提供了对SQL的跟踪trace, 通过trace文件能够进一步了解为什么优化器选择A计划, 而不是选择B计划。

打开trace , 设置格式为 JSON,并设置trace最大能够使用的内存大小,避免解析过程中因为默认内存过小而不能够完整展示。

SET optimizer_trace="enabled=on",end_markers_in_json=on; 
set optimizer_trace_max_mem_size=1000000;

执行SQL语句:

select * from user where uid < 2;
select * from information_schema.optimizer_trace \G;

显示结果


声明:内容来源于B站视频《2022黑马程序员最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程》,博客内容仅作学习参考使用。



博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/mysql35.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 06 月 15 日
如果觉得我的文章对你有用,请随意赞赏