通过EXPLAIN分析低效SQL的执行计划
explain select * from film where rating>9\G;
select_type | 表示select的类型 |
|
||||||||
table | 输出结果集的表 | |||||||||
possible_keys |
查询中可能用到的索引 | |||||||||
key | 查询中实际用到的索引 | |||||||||
key_len | 索引的长度 | |||||||||
rows | 扫描的行数 | |||||||||
type | 访问类型 |
从左到右,性能由最差到最好
ALL:全表扫描 index:索引全扫描 range: 索引的范围扫描 用于<,<=,>,>=,between等操作 ref:使用非唯一索引扫描或者唯一索引的前缀扫描 eq_ref:使用唯一索引扫描,多表链接中使用primary key或者unique key作为关联条件 const/system:单表中只有一个匹配行,查询速度快,根据主键或者唯一索引进行的查询 NULL:mysql不用访问表或者索引,直接能够得到结果 |