EXPLAIN输出格式全解析:JSON、TREE与可视化

EXPLAIN不仅可以输出为表格这样的传统格式,也可以输出为JSON格式、TREE格式。甚至可以得到可视化输出格式。

1、传统格式

具体每个列代表什么意思可以参考上篇。

2、JSON格式

实现方式:在EXPLAIN与查询语句中添加FORMAT=JSON即可

输出的内容相比传统方式就比较丰富。

其中:

(1)read_cost由以下部分组成:

  • I/O成本;
  • 检测 rows × (1-filter)条记录的CPU成本。

(2)eval_cost计算:

  • 检测rows×filter条记录的成本

(3)prefix_cost是单独查询s1表成本:read_cost+eval_cost

(4)data_read_per_join表示在当次查询中需要读取数据量

3、TREE格式

主要根据查询的各个部分之间的关系和各部分的执行顺序来描述如何查询。

4、可视化输出

通过MySQL Workbench工具可以生成可视化查询计划(每个表格的框上方是每个表访问所发现的行数的估计值以及访问该表 的成本)

说在最后:SHOW WARNINGS

show warnings可以查看优化器优化后的查询语句大致执行流程

相关推荐
阳光九叶草LXGZXJ5 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
字节渡客5 小时前
Redis键明明过期了,业务还在读到旧数据
数据库·redis·spring
2601_962885726 小时前
如何用 Python 自动识别股票的支撑位与压力位?
开发语言·python
爱吃奥利奥_wen7 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
我可能是个假开发7 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
OnlineProxy8 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
WL学习笔记8 小时前
日期类(C++)
开发语言·c++·日期类实现
谢亮_vipxieliang9 小时前
Go map与结构体的正确使用
开发语言·golang·哈希算法
H.莓飛9 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
xxwl5859 小时前
数据结构知识点和代码实现总结(C语言实现)
c语言·开发语言·数据结构