深入浅出最左匹配原则

最左匹配原则是MySQL中联合索引使用的关键,指从最左边的字段开始连续匹配。遇到范围查询会停止匹配。例如,对于(a,b)索引,查询条件a = 1 and b = 2能有效利用索引,而b = 2则不能。同样,对于(a,b,c,d)索引,若条件为a = 1 and b = 2 and c > 3,c后的d字段无法使用索引。这是因为B+树结构基于最左字段排序,后续字段在范围内是无序的。" 119837673,9741434,深度学习进阶:卷积神经网络与反向传播解析,"['深度学习', '神经网络', '卷积']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

顾名思义:最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、<、between、like)就会停止匹配

例如:b = 2 如果建立(a,b)顺序的索引,是匹配不到(a,b)索引的;但是如果查询条件是a = 1 and b = 2或者a=1(又或者是b = 2 and a = 1)就可以,因为优化器会自动调整a,b的顺序(in 和 =)。再比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,因为c字段是一个范围查询,它之后的字段会停止匹配。


详解:

因为索引的底层是一棵B+树,联合索引的键值数量不是一个,而是多个

但是构建一棵二叉树只能根据一个值来构建,因此数据库依据联合索引最左的字段来建立B+树。


举个栗子:

假如创建一个(a,b)的联合索引,那么它的索引树是这样的

可以看到a的值是有顺序的,1,1,2,2,3,3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值