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

Johngo学长 MySQL 125

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 条件的情况下,减少回表的次数。

回复

我来回复
  • 暂无回复内容

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载