explain简单用法

explain

  解释:mysql关键字之一,用于解释某条sql的执行效率

  用法:explain  select id,name from table where id=1;

  基本属性:id,select_type , table , type , possible_keys , key , key_len , ref , rows , extra

  (explain查出的条数就是你select语句关联表的个数,不包括系统创建的临时表)

explain属性 ,  属性值解释

一、id

  id的值表示执行的顺序,值越大,优先级越大,值相同,从上到下执行

二、 select_type

  1.SIMPLE 表示单表查询

  2.PRIMARY 表示有复杂查询(多表,子查询,union)

  3.DEPENDENT SUBQUERY 表示为子查询

  4.UNION 有union关联表

  5.UNION RESULT 使用union查询结果的临时表

三、table

  select语句的表对象(表面,别名,临时表名称)

四、type(重点关注)

  所有值对象(效率从好到坏)

  system,const,eq_ref,ref,fulltext,ref_or_null,index_merge,unique_subquery,index_subquery,range,index,ALL

  1.const 表示在查询条件中的字段有索引(索引是UNIQUE或PRIMARY KEY)

  2.eq_ref 两个表关联,关联条件为两个表的唯一索引(索引是UNIQUE或PRIMARY KEY)

  3.ref 表示在查询条件中的字段有索引

  4.unique_subquery 子查询的结果是唯一

  5.index_subquery 子查询的结果带索引

  6.range 查询的条件在某个范围内

  7.index 读全表,查询字段涉及索引

  8.ALL 读全表,查询字段不涉及索引

五、possible_keys

  指出在select语句中,有助于查询用到的索引

六、key(重点关注)

  在select查询时,用到的真正的索引

七、key_len

  key的长度

八、ref

  值:const(表示常量),列名

  表示select使用哪一列或者哪一常量在查询中

九、rows(关注)

  表示mysql执行查询的行数,数值越大效率越差

十、Extra(关注)

  1. using filesort 表示mysql返回结果集之前进行了外部排序,及文件排序。效率差

  2. using temporary 表示mysql在返回结果集之前创建了临时表(使用了group by 或order by)

  3. usering index 表示是否使用了索引

 

你可能感兴趣的:(explain简单用法)