CS-Notes 学习笔记
面试常问面试冲刺 · MySQL

联合索引的最左前缀是什么?哪些情况下索引会失效?

先自己想一想,再看参考要点

参考要点

  • 联合索引先按第一列排序、再按第二列,所以条件要从最左列开始连续使用才能定位,与 WHERE 中的书写顺序无关,范围条件之后的列一般不能再缩小扫描范围(带等号时例外)
  • 常见的无法用索引定位的情况:缺少最左列(8.0.13 起少数情况可跳跃扫描)、对索引列用函数(可建函数索引)、字符串列与数字比较、LIKE 以 % 开头、OR 一侧没有索引
  • 匹配的行太多时,优化器按成本选择全表扫描
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。