最左前缀原则的原理

75 阅读1分钟

MySQL的InnoDB引擎的索引底层大多是B+树,在聚簇索引中,其叶子节点是一个键值对,其键为

  1. 如果有主键,那么主键是B+树的键
  2. 如果没有主键,就找是否存在没有NULL值的唯一列,存在则用他作为B+树的键
  3. 如果都没有,则自动生成一个隐式自增的rowid

但是联合索引有所不同,他的键是由每个字段的值按照索引定义的顺序依次排列,形成一个复合的键值。

比如A_B_C索引,那么他会先对A进行排序,再对B,再对C,所以说只有在保证A的顺序的时候,才能保证B的顺序,才能保证C的顺序,所以联合索引的使用要遵循最左前缀原则。