1、 MySQL5.6引入了索引下推优化,默认是开启的。
2、 例子:user表中(a, b, c)构成一个索引。
3、 select * from user where a=’23’ and b like ‘%eqw%’ and c like ‘dasd’。
4、 解释:如果没有索引下推原则,则MySQL会通过a=’23‘先查询出一个对应的数据。然后返回到MySQL服务端。MySQL服务端再基于两个like模糊查询来校验and查询出的数据是否符合条件。这个过程就设计到回表操作。
5、 如果使用了索引下推技术,则MySQL会首先返回返回条件a=’23‘的数据的索引,然后根据模糊查询的条件来校验索引行数据是否符合条件,如果符合条件,则直接根据索引来定位对应的数据,如果不符合直接reject掉。因此,有了索引下推优化,可以在有like条件的情况下,减少回表的次数。
Was this helpful?
0 / 0