欢迎光临散文网 会员登陆 & 注册

一文读懂MySQL执行计划

2023-07-08 22:51 作者:valarSky  | 我要投稿

在日常开发中,我们经常会碰到一些复杂的多表联查的SQL,进行性能优化的问题。这时候了解SQL的执行过程就尤为重要。通过在SQL语句前面添加Explain关键字,MySQL就会为我们揭示执行的流程。

id值相同:按照从上往下的顺序执行

id值不同:id值越大,越优先执行

id值两种情况混合:最先优先执行id值大的,id值相同的按照从上往下顺序执行

select_type列解析

type

SQL查询性能的一个重要指标,查询性能由好到坏如下:

system:表里只有一条记录

const:索引只匹配一次就找到数据,该场景常见与主键与唯一索引

eq_ref :主键或者唯一索引的扫描

ref :普通索引的扫描

range :范围搜索,使用了between、in、<>这些关键字后

index: 比起全表扫描稍微好一点,没有扫描所有数据

ALL:全表扫描所有的数据

虽然还有很多其他的Type,但是常见的就上面几种,最低要求要达到range,最好达到ref

possible_keys && key

possible_keys:可能会用到的索引

key:实际用到的索引

key_len

索引字段可能的长度,数字越小约好

ref

1.索引查找用的表里的哪个字段,

2.使用常量等值查询(1=1)显示const

3.使用了表达式、函数情况下显示func

Rows

找到需要的数据,需要扫描数据表的行数,越小约好

filtered

数据表里,符合查询条件的数据,所占用的百分比

Extra


一文读懂MySQL执行计划的评论 (共 条)

分享到微博请遵守国家法律