MySql-Explain执行计划

Explain执行计划

例:Explain select * from user;

id select_type table partitions type possible_keys key key_len ref rows filtered Extra

id:查询序列号,表示查询中执行select子句或操作表的顺序

  1),id相同,执行顺序由上至下

  2),id不同,如果是子查询,id的序号会递增,id值越大,优先级越高,越早被执行

  3),id同时存在相同和不同,可以认为相同的为一组,在组内执行顺序由上至下,在所有组中,按id的大小执行,id越大越快被执行

select_type:查询类型

  1),SIMPLE:简单的select查询,查询中不包括子查询或UNION。

  2),PRIMARY:子查询中的最外层查询,查询中若包含任何复杂的子部分,最外层的select被标记为PRIMARY。

  3),UNION:若第二个select出现在union之后,则被标记为union;

  4),DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询

  5),UNION RESULT:从UNION表获取结果的SELECT

  6),SUBQUERY:在select 或 where列表中包含了子查询 

  7),DEPENDENT SUBQUERY:子查询中的第一个SELECT,依赖于外部查询

  8),DERIVED:若union包含在from子句的子查询中,外层select将被标记为derived

  9),UNCACHEABLE SUBQUERY:一个子查询的结果不能被缓存,必须重新评估外链接的第一行

type:当前被执行的表或者结果集

  1),ALL:扫描遍历全数据表

  2),INDEX:全索引表扫描

  3),RANGE:对索引列进行范围查找

  4),INDEX_MERGE:合并索引,使用多个单列索引搜索

  5),REF:根据索引查找一个或多个值

  6),EQ_REF:搜索时使用primary key 或 unique类型

  7),CONST:常量,表最多有一个匹配行,因为仅有一行,在这行的列值可被优化器剩余部分认为是常数,const表很快,因为它们只读取一次。

  8),SYSTEM:系统,表仅有一行(=系统表)。这是const联接类型的一个特例。

  9),NULL

性能:ALL

性能在RANGE之下基本都可以进行调优

partitions:可能使用的索引

table:真实使用的

possible_keys:指出MySQL能使用哪个索引在表中找到行,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用。

key:MySQL中实际使用的索引

key_len:MySQL中实际使用的索引字节长度

ref:显示索引的那一列被使用了

rows:MySql 预估为了找到所需的行而要读取的行数

filtered

Extra:包含不适合在其他列中显示但十分重要的额外信息

你可能感兴趣的:(MYSQL)