联合索引最左前缀原理

2020-04-06  本文已影响0人  吕艳凯

B+Tree对索引列是按顺序组织存储的
例如三个字段的联合索引abc,由于是按
a相同后按b顺序排列,b相同后再按c顺序排列的原则。因此abc联合索引能够⽤
来查找a、a%、ab、ab%、abc组合查找(%标识模糊匹配),这种根据索引对
数据的存储顺序所能命中使⽤索引的规则,由于按最左字段顺序排列称为最左前
缀原则。

索引失效的情况:
不从最左列开始查找:直接找bc,⽆法使⽤abc索引。

跳过中间的列查找:
找ac,⽆法使⽤abc索引。

中间某个列是范围查找:
找ab%c,则由于中间b为模糊匹配,范围查找
或者 a=1 and b > 2 and c=4,b范围查找
那么只能使⽤ab两列的索引,c列的索引⽆法使⽤。

列使用函数:
当查询条件列使用函数时,无法使用索引

由于此最左前缀原则,因此我们可以将区分度最⾼的列放在最前⾯

上一篇下一篇

猜你喜欢

热点阅读