MySQL - 索引下推
在索引满足最左前缀匹配的时候,将部分不满足逻辑的数据过滤掉,减少回表操作。
比如有如下表格
ID | 姓名 | 年龄 | 性别 |
---|---|---|---|
1 | 张三 | 15 | 男 |
2 | 张四 | 10 | 男 |
3 | 张五 | 10 | 女 |
4 | 李四 | 21 | 女 |
并在表格的基础上建立了如下姓名和年龄的索引
ID | 姓名 | 年龄 |
---|---|---|
1 | 张三 | 15 |
2 | 张四 | 10 |
3 | 张五 | 10 |
4 | 李四 | 21 |
现在需要查找姓名为张开头、年龄为10岁并且性别为男的状况。
如果没有索引下推,那么ID为1,2,3的数据会进行回表操作。
如果有索引下推,那么会先判断年龄是否为10岁,减少回表操作。此时只有ID为2、3的数据会进行回表操作。
所以,索引下推的作用就是在索引满足部分条件的情况下,尽量减少回表操作。