ABD
explain_type 有三个类型, EXTENDED、 PARTITIONS、 FORMA T = format_name,三个只能同时使用一个,否则报语法错误,分别表示含义如下(注意:5.7 开始默认启用 EXTENDED 和 PARTITIONS, 即只需要选择用与不用 FORMA T =json 即可,默认 FORMA T =TRADITIONAL。如果要显式使用 EXTENDED 和PARTITIONS 关键字,那么与 5.6 及其之前的版本一样,仍然只能选其一)
EXTENDED:表示查看扩展的执行计划信息,会把执行计划内部改写的 SQL 语句打印出来,放到 warnings 信息中,另外,EXTENDED 类型还会多输出一个列filtered(注意:5.7 版本开始默认启用了扩展的格式,不需要再显式使用这个关键字了)
PARTITIONS:表示查看分区表的执行计划信息,执行计划中可以看到 mysql 扫描了哪些分区,会多出一个 partitions 输出列(注意:5.7 版本开始默认使启用了PARTITIONS 关键字的功能,不需要再显式使用这个关键字了) FORMA T = format_name:表示使用指定的格式来输出执行计划信息,format_name 有 TRADITIONAL 和 JSON 两种输出格式,分别表示的含义如下: * TRADITIONAL:表示使用传统的输出格式,像查询一行数据横排那样输出,当然你也可以使用\G 来竖排输出 * JSON:表示使用 json 输出格式,json 格式只会打印值不为 null 的列,json 格式中打印了更多的执行计划内部信息,5.7 中更是打印了详细的 cost 信息、行扫描信息以及使用到的列字段信息等