mysql 执行计划 : explain select * from dual;
这种模式可以看到mysql给出的最优执行语句
EXPLAIN EXTENDED select * from persona;
show WARNINGS;
执行计划 type 列 : system > const > eq_ref > ref > range > index > all
const : 用于primary key 或 unique key 的所有列与常数比较时,所以表最多有一个匹配行
system:system 是const 的特例,表里面只有一条元祖匹配为system
eq_ref: primary key 或 unique_key 索引的所有部分被连接使用,最多就返回一条符合条件的记录
ref: 不适用唯一索引,而是使用普通索引或者唯一索引的部分前缀,索引要和某个值比较,可能会找到多个符合的行
range: 范围扫描通常出现在 in ,between, > ,< ,>=等操作中,使用一个索引来检索给定的范围行
index: 全表索引扫描
all : 全表扫描,index 是从索引中读取,all是从硬盘中读取,通常这种情况需要增加索引来优化
mysql 索引底层理解