1.explain返回的关键字段
explain select city,name,age from t where city='深圳' order by name limit 1000;
会返回几个关键性的字段:
(1)type:表示MySql查询数据时的类型,主要有如下几种类型:system,constant,eq_ref,ref,range,index,all,性能从左到右依次变差;
(2)key:表示使用了哪个索引,如果没有使用则为null;
(3)rows:表示预估扫描的行数。
2.不同的type在什么情况下会出现?
system:系统表的查询时会出现,平时业务sql不会出现;
constant:主键的等值查询时会出现,比如:select * from t where id = 1;id就是主键;
eq_ref:在连表查询的时候,如果某个where条件就是主键索引或者唯一索引的时候会出现;
ref:在普通索引的等值查询时会出现;
rang:在between、>、<等范围查找时会出现;
index:全索引扫描;
all:全表扫描。