mysql 执行计划查看

执行计划字段解释

id 表的加载顺序
表的加载顺序,ID相同时从上到下,ID不同时越大的越先执行
select_type 查询类型
SIMPLE 简单查询,不包含子查询和UNION
PRIMARY 查询中包含任何复杂部分,最外层查询为PRIMARY
SUBQUERY select或者where 包含子查询
DERIVED 在from列表中包含的子查询被标记为衍生虚表,mysql会递归执行这些子查询,结果放到临时表里
UNION 若第二个select出现在UNION后,则被标记为UNION;若UNION包含在FROM子句的子查询中,最外层select被标记为DERIVED
UNION RESULT 从UNION表获取结果的select
table 查询的表
partitions 查询的分区
type 访问类型
性能排序
全部
system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_query>range>index>ALL
常用
system>const>eq_ref>ref>range>index>ALL

system 表只有一行记录,属于const类型特列
const 表示通过索引一次就能找到,用于比较primary key 或者 unique索引,因为只匹配一行数据所以很快。
eq_ref 唯一索引扫描,对每个索引建表中只有一条记录与之匹配。
ref 非唯一性索引扫描,返回匹配某个单独值得所有行。
range 只检索指定范围的行,使用一个索引来选择行,不用全表扫描,只用扫描部分索引
index 遍历索引树表ALL快,只用遍历索引文件
ALL 全表扫描
possible_keys 预计使用的索引
key 实际使用的索引
key_len 索引长度
索引中使用的字节数,通过该列计算查询中使用的索引长度,越小越好,显示最大长度不是实际使用长度,通过定义计算得出不是表内检索出
ref
显示索引的哪一列被使用,哪些列或者常量被用于查找索引列上的值。
显示格式 库.表.列
rows
根据表统计信息及索引选用情况,大致估算出找到所需记录需要的行数,越小越好
Filtered
Filtered表示返回结果的行数占需读取行数的百分比 Filtered列的值越大越好 Filtered列的值依赖于统计信息
Extra
using filesort 说明 mysql对数据使用外部排序,无法使用索引排序,性能很慢需要优化
using temporary 新建了临时表保存中间结果,常见于group by ,order by
using index 表示使用了覆盖索引,效率较好,如果出现了using where表明索引用来执行索引键的查找。
using where 使用了where过滤
using join buffer 使用了连接缓存
impossible where where子句的值总是false,不能用来获取任何元组
select tables optimized away 在没有group by 子句的情况下,基于索引优化MIN/MAX操作
distinct 优化distinct操作,在找到第一匹配的元组后停止查找动作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值