一文读懂MySQL执行计划

2023-07-08 23:17:36
来源:哔哩哔哩

在日常开发中,我们经常会碰到一些复杂的多表联查的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

[责任编辑:]

为您推荐

相关推荐

内容举报联系邮箱:58 55 97 3 @qq.com

沪ICP备2022005074号-27 营业执照公示信息

Copyright © 2010-2020  看点时报 版权所有,未经许可不得转载使用,违者必究。