
id : select子句或表执行顺序,id相同,从上到下执行,id不同,id值越大,执行优先级越高。
select_type:select子句中的类型。
- simple:简单的SELECT查询,不包含子查询和union。
- primary:子查询中最外层查询,查询中若包含任何复杂的子部分,最外层的SELECT被标记为primary。
- union:位于union中第二个极其以后的子查询中别标记为union,第一个就被标记为primary,如果是union位于from中则标记为derived
- dependent union:满足union的的条件,及union中第二个以及后面的SELECT语句,同时该语句依赖外部的查询。
- derived:该临时表是从子查询中派生出来的,位于form中的子查询。
- depend subquery:子查询中的首歌SELECT(依赖外部的查询)。
- subquery:子查询中的第一个SELECT。
able:显示该查询访问的表名(或者别名)。也可能是以下的值:
- :该行指的是id值为M和id值为N的并集。
- :该行是指用于与该行的派生表结果id的值N。例如,派生表可以来自FROM子句中的子查询。
- :N指向子查询,也就是explain结果中的下一列。
possible_keys:显示可能应用在这张表中的索引,一个或者多个。查询设计到的字段若存在索引,在该索引被列出,但不一定被查询实际使用。
key:实际被使用的索引列。
key_len:表示索引中使用的字节数(最大可能长度,并非实际使用长度),如果key是NULL,则key_len是NULL。在不损失精度的情况下,长度越短越好。
ref:关联的字段,常量等值查询,显示为const,如果为连接查询,显示关联的字段。
rows:估算找到所查数据需要读取数据的行数。
Extra:额外信息,使用优先级Using index>Using filesort(九死一生)>Using temporary(十死无生)。
type:访问类型,一般要到rang级别
- all (全表扫描),
- index (全索引扫描,index与all区别为inex类型只遍历索引树。),
- rang (索引范围扫描,仅检索给定范围内的行。输出行中的键列指示使用哪个索引。 key_len包含使用的最长的键部分。对于这种类型,ref列为空。使用=,<>,>,> =,<,<=,IS NULL,<=>,BETWEEN,LIKE或IN()运算符将键列与常量进行比较时,可以使用range。),
- ref (join语句中被驱动表索引引用查询),
- eq_ref(通过主键或唯一索引访问,最多只会有一条结果),
- const (读常量,只需读一次),
- system(系统表。表中只有一条数据),
- null(速度最快)。
- 性能从差到好。
