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可以查看优化器优化后的查询语句大致执行流程
