mysql的执行计划
**字段含义**
id:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序
select_type:查询的类型,主要是用于区分普通查询、联合查询、子查询等复杂的查询
type:访问类型,SQL查询优化中一个很重要的指标
possible_keys:查询涉及到的字段上存在索引,则该索引将被列出,但不一定被查询实际使用
key:实际使用的索引,如果为NULL,则没有使用索引
key_len:表示索引中使用的字节数,查询中使用的索引的长度(最大可能长度),并非实际使用长度,理论上长度越短越好。key_len是根据表定义计算而得的,不是通过表内检索出的
ref:显示索引的那一列被使用了,如果可能,是一个常量const
rows:根据表统计信息及索引选用情况,大致估算出找到所需的记录所需要的行数
Extra:不适合在其他字段中显示,但是十分重要的额外信息
**type:类型**
null:几乎不用找,mysql在优化过程中的分解语句
system:系统级别,只有一行
const:唯一记录,主键查询--->where 主键=? 此时mysql会将其转换成一个常量 效率很高
ref:某一个属性对应的多个行 select*from a where age =24
range:扫描一定范围-->between,<,>中可以见到
index:扫描全部索引树
all:全表扫描 效率很慢
**extra:额外信息**
only index:只用索引树就扫描出来了,比整表扫描快
using where:使用了where限制,表示mysql服务器在储存记录后受到了过滤
impossible where:where后面的条件永远是false
using filessort:使用文件排序,当sql中没有索引排序的时候就会用到filesort--->order by null 优化
using temporary:mysql需要临时表来储存结果集,order by 和group by中可以见到
mysql的执行计划
最新推荐文章于 2024-07-25 08:25:52 发布