哪些场景适合使用索引覆盖来优化SQL

全表count查询优化

select count(age) from user;
使用索引覆盖优化:创建age字段索引

列查询回表优化

select id,age,name from user where age = 10;
使用索引覆盖:建组合索引idx_age_name(age,name)即可

分页查询

:select id,age,name from user order by age limit
因为name字段不是索引,所以在分页查询需要进行回表查询
使用索引覆盖:建组合索引idx_age_name(age,name)

explain一些说明

Extra:Using index condition 表示使用的索引方式为二级检索,即被用来进行回表查询。
Extra:Using index 表示没有会标查询的过程,实现了索引覆盖
Using filesort 是Mysql里一种速度比较慢的外部排序,如果能避免是最好的了

using where代表发生了过滤,网上有不少文章误把using where和是否读取索引进行关联,是不正确的,

Using temporary(临时表)
Using filesort(文件排序)

order by的 字段要使用索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InterestingFigure

迈克 Let's Go

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值