查看MySQL的查询计划是分析查询的重要方法,可以通过使用EXPLAIN语句来确认优化器将采取哪种查询计划,是否与你的预期一致。
如何使用EXPLIAN?使用它有两种方式:
直接在查询语句之前直接加上EXPLAIN即可。EXPLAIN支持 SELECT,DELETE,INSERT,REPLACE和UPDATE语句。执行EXPLAIN时并没有真正的执行该后面的语句,因此可以安全的查看执行计划。
查看当前连接的执行计划。当用户发现有一个查询执行了很长时间,用户需要分析执行缓慢的原因,这时可以通过EXPLAIN FOR CONNECTION语句查看当前执行语句的查询计划。用户可以通过sys.session视图里面的conn_id来获得当前查询的连接id。
EXPLAIN的格式。EXPLAIN可以输出四种格式,传统格式,JSON格式,tree格式以及可视化输出。用户可以根据需要选择适用于自己的格式。
传统格式简单明了,输出是一个表格形式,概要说明查询计划。
JSON格式是四种格式里面输出信息最详尽的格式,里面还会包含执行成本信息。
TREE格式是8.0.16版本之后引入的新格式,主要根据查询的各个部分之间的关系和各部分的执行顺序来描述如何查询。
可视化输出,可以通过MySQL Workbench可视化查看MySQL的执行计划。通过点击Workbench的放大镜图标,即可生成可视化的查询计划。
上面的内容是关于查看执行计划的方法和输出格式。
转文至此。
欢迎关注个人微信公众号“一森咖记”
近期热文
你可能也会对以下话题感兴趣。点击链接便可查看。
为什么不建议把数据库部署在docker容器内?
今天来聊一聊数据库事务的四种隔离性及Oracle和MySQL各自的默认隔离级别及原因分析
MySQL数据延迟跳动的问题分析
MySQL 5.6和 5.7_同步账号修改密码方式:真的不一样
MySQL8.0 为嘛弃用Query Cache?
你应该知道的分布式系统之奠基石CAP理论
MySQL数据延迟跳动的问题分析
如何判断一个应用系统性能好不好?
MySQL Document Store 混合使用关系型数据与非关系型数据
分布式一致性算法:Paxos算法学习
MySQL 中你不得不知的重要知识点
神技_如何快捷下载Oracle补丁的方法?!
趋势篇:oracle 11g,12c,18c,19c之support lifetime
Centos能不能替换RHEL?
Centos能不能替换RHEL?
年末总结_聊一聊数据库行业的“继往开来”
【干货篇】在国内外数据库百家争鸣的时代,DBA们该何去何从?
实操:12C RAC环境下的ADG同步库搭建
浅谈MySQL三种锁:全局锁、表锁和行锁