一、定义

  • explain命令显示了mysql如何使用索引来处理select语句以及连接表。

  • explain显示的信息可以帮助选择更好的索引和写出更优化的查询语句。

二、使用方法

explain [SQL语句];

三、EXPLAIN列的解释

SELECT_TYPE字段含义

  • 1、UNION: 当通过union来连接多个查询结果时,第二个之后的select其select_type为UNION。

  • 2、DEPENDENT UNION(从属联合)与DEPENDENT SUBQUERY(依赖子查询): 当union作为子查询时,其中第二个union的select_type就是DEPENDENT UNION。 第一个子查询的select_type则是DEPENDENT SUBQUERY。

  • 3、SUBQUERY 子查询中的第一个select其select_type为SUBQUERY。

  • 4、DERIVED 当子查询是from子句或者select字句时,其select_type为DERIVED。

  • 5、SIMPLE:简单SELECT(不使用UNION或子查询)

  • 6、PRIMARY:最外面的SELECT

  • 7、UNION RESULT:UNION 的结果

TYPE含义解释

extra列返回的描述的意义