Mysql索引的最左匹配原则原理

总所周知,mysql的索引遵循的是最左匹配原则
那最左匹配原则在mysql里是怎么玩的?
在这里插入图片描述在这里插入图片描述

假设我们在表中有2个字段,一共有6条数据,其中id的索引树见上图
我们现在要查id=6的数据:首先mysql会将0003这个节点加载到内存中比对,发现6要比3大,则取到0003节点的右子节点的地址,然后再将0004 0005这个节点加载到内存中,将6继续跟4和5比对,发现6还是比4和5都大,就取4和5节点的右子节点的地址,最后找到0006这个叶子节点上

以上是id主键的检索方式
下面来说下非主键索引在Myiasm和Innodb中不同
假设我们以name作为索引
当我们要查一个name=mi的数据列时,首先mysql会先将索引树中的节点按照数据库的字符集全部转换一遍,
譬如我们的数据库配置的是utf8mb4,在utf8mb4表里,phone的第一个字段p是100,第二个字母h是150,依此转换一遍,然后拿mi去跟phone比对,如果发现mi比phone大,则取其右子节点,反之取左子节点,直到找到mi为止
在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啊狸的Java

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

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

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

打赏作者

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

抵扣说明:

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

余额充值