关于索引下推

index condition pushdown is usually useful with multi-column indexes: the first component(s) is what index access is done for, the subsequent have columns that we read and check conditions on

索引下推简而言之就是在复合索引由于某些条件(比如 like %aa)失效的情况下,当存在失效的过滤字段在索引覆盖范围内,使用比较的方式在不回表的情况下进一步缩小查询的范围。

其实就是对索引失效的进一步修复,属于最左前缀索引原则的一个意外情况。

索引下推触发的条件

  1. 查询条件是符合索引
  2. 失效条件的字段在索引覆盖的范围内
  3. 失效条件是可以通过数据进行比较的简单对比

以此我们可以推断出索引下推可以使用的场景

  1. like查询
  2. 函数在左的查询,比如CHAR_LENGTH(colName)=5

bandit
1.3k 声望9 粉丝

PHP程序员|do one,do best.