MySQL Explain详解
简介
执行计划(query Execution plan)
语法
explain select * from table
explain 中的列
expain出来的信息有10列,分别是id,select_type,table、type,possible_keys,key,key_len,ref,rows,Extra,下面对这些字段出现的可能进行解释:
一、ID
SQL执行的顺序的标识,SQL从大到小的执行
ID相同时,执行顺序由上至下
如果是子查询,ID的序号会递增,ID值越大优先级越高,越先被执行
ID如果相同,可以认为是一组,从上往下顺序执行;在所有组中,ID值越大,优先级越高,越先执行
二、select_type
示查询中每个select子句的类型
SIMPLE:简单的SELECT,不实用UNION或者子查询。
PRIMARY:最外层SELECT。
UNION:第二层,在SELECT之后使用了UNION。
DEPENDENT UNION:UNION语句中的第二个SELECT,依赖于外部子查询。
UNION RESULT:UNION的结果。
SUBQUERY:子查询中的第一个SELECT。
DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询。
DERIVED:导出表的SELECT(FROM子句的子查询)
三、table
当 from 子句中有子查询时,table列是 <derivenN> 格式,表示当前查询依赖 id=N 的查询,于是先执行 id=N 的查询。当有 union 时,UNION RESULT 的 table 列的值为 <union1,2>,1和2表示参与 union 的 select 行id。
发表回复