explain怎么用?
比如说你查看一个 select count(1) from table 某个表的时候,在语句前面加一个explain就可以了。
具体说一下各个字段都是什么意思:
id:自增长的id,其实没什么用,做一个标示作用;
select_type: 查看数据查询的查询 ,主要有下面这个类型
SUBQUERY,DERIVED(子查询派生出来的临时表),UNION,UNION RESULT,SIMPLE,PRIMARY;
table:标记查询表的名字
type:ALL(全表扫描),index(索引全表扫描),range(范围扫描,加了where条件),ref, eq_ref, const, system, NULL
key:显示使用的索引
key_len:显示使用索引的字节长度(并不是很准确)
ref:key列需要查找的列和常量;
rows:查询所需要检查的行数,这个并不是真的需要检查这么多行,因为有缓存的存在,无法影响到行数的现实;