执行计划
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
id: 查询顺序的标识
select_type: 查询的类型
SIMPLE: 简单查询
PRIMARY: 最外层查询
SUBQUERY:映射的子查询
DRIVED: 子查询
UNION:联合
UNION RESULT:使用联合的结果
table: 访问的表
partitions:
type: 查询的访问方式
all < index < range < index_merge < ref_or_null < ref < eq_ref < const/system
all: 从前往后,全表扫描
select * from userinfo where uname = 'alex';
特别的:select * from userinfo where uname = 'alex' limit 1;
这句特别快,虽然explain后,type也是all,但这句是找第一个后就不会往后继续扫描了
index: 全索引扫描
range: 指定索引范围扫描
PS: between and / in / >= < <= 特别注意!=和>
index_merge: 索引合并
ref_or_null:
ref: 使用索引查询一个或多个值
eq_ref: 连表时条件on用primary key或者unique
const: 常量,最多一个匹配行
system: 仅一个匹配行
possible keys: 可能使用的索引
key: 真实使用的索引
key_len: 索引使用的长度
ref:
rows: 找到所需的行所读取的行数
filtered:
Extra: