联合索引与最左前缀原则详解

联合索引与最左前缀原则详解

一、联合索引概念

联合索引(Composite Index)又称复合索引,是指由多个列组合构成的B-Tree索引。与单列索引不同,联合索引按照定义的列顺序将多个字段值组合在一起建立索引结构。

联合索引的本质是将多个字段的有序排列组合成一个索引键,通过这个组合键来加速查询

1.1 联合索引的存储结构

B+树结构中:

  • 索引键按照列定义的顺序拼接
  • 先按第一列排序,第一列相同再按第二列排序,以此类推
  • 叶子节点存储的是索引列值+主键值(非聚簇索引)

例如索引idx_a_b_c(a,b,c),存储时类似:

(a1,b1,c1) -> PK1
(a1,b1,c2) -> PK2
(a1,b2,c1) -> PK3
(a2,b1,c1) -> PK4

二、最左前缀原则

最左前缀原则(Leftmost Prefix Principle)是联合索引的核心使用规则:

查询必须从索引的最左列开始,并且不能跳过中间的列,才能充分利用联合索引

2.1 原则详解

  1. 必须包含最左列:任何使用联合索引的查询都必须包含第一列
  2. 不能跳过中间列:如果查询条件跳过了中间的列,则后续列的索引将失效
  3. 范围查询后的列失效<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hixiaoyang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值