哪些场景适合使用索引覆盖来优化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的 字段要使用索引

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值