explain简单用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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简单用法的主要内容,如果未能解决你的问题,请参考以下文章