MySQL 5.6 和 MySQL 5.7 对索引做了哪些优化?

Johngo学长 MySQL 42

MySQL5.6引入了索引下推优化,默认是开启的。

例子:user表中(a,b,c)构成一个索引。

select * from user where a=’23’ and b like ‘%eqw%’ and c like ‘dasd’。

解释

如果没有索引下推原则,则 MySQL 会通过 a=’23’ 先查询出一个对应的数据。然后返回到 MySQL 服务端。MySQL 服务端再基于两个 like 模糊查询来校验 and 查询出的数据是否符合条件。这个过程就设计到回表操作。

如果使用了索引下推技术,则MySQL会首先返回返回条件a=’23’的数据的索引,然后根据模糊查询的条件来校验索引行数据是否符合条件,如果符合条件,则直接根据 索引来定位对应的数据,如果不符合直接 reject 掉。因此,有了索引下推优化,可以在有 like 条件的情况下,减少回表的次数。

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部