【MySQL】MySQL 索引常用数据结构

推荐阅读


1. BTREE 数据结构


BTREE 又称之为多路平衡搜索树。

1.1 BTREE 结构的特点


BTREE 具有以下特点:

  1. 一个M叉的BTREE 数据结构,每个节点最多包含 m-1 个子节点
  2. 除了根节点和叶子节点外,每个节点至少有 [ceil(m/2)] 个子节点
  3. 如果根节点不是叶子节点,则其至少有两个分支
  4. 所有的叶子节点均处在同一层
  5. 每个非叶子节点由 N 个 Key 和 N+1 个指针组成,其中 N的取值范围是 [ceil(m/2) - 1] <= N <= M-1

1.2 BTREE 构造演示


插入数据 : C、N、G、A、H、E、K、Q、M、F、W、L、T、Z、D、P、R、X、Y、S

  1. 由于是5叉BTREE数,所以每个节点上最多只能保存4个数据。因此保存的是C、N、G、A。


image.png

  1. 继续插入 H的时候,根节点变为 A、C、G、H、N 突破了最大容量,因此中间节点G转化为 父节点


image.png

  1. 然后接着插入 E、K、Q结果如下所示


![image.png](https://img-blog.csdnimg.cn/img_convert/06d31247eb5940bde84477ca413f05d4.png#align=left&display=inline&height=111&name=image.png&originHeight=222&originWidth=680&size=16108&status=done&style=none&width=340)
  1. 在继续插入M的时候,因为大于G,所以会插入到右侧的分支,但是由于右侧节点新增M之后,节点数据超过5个,所以中间节点M升级为父节点和根节点G 合并,遗留的4个节点拆分为2个子节点


image.png


image.png



  1. 然后依次此操作,最后插入完成后得到下图结果


image.png

使用的绘图连接是 https://www.cs.usfca.edu/ 可以在此网站中学习先关的数据结构,其动画流程延时的效果很棒


2. BTREE+ 数据结构

  1. B+数的Key的数量最多是M个,而BTREE 最多是 M-1 个
  2. B+数所有的叶子节点中保存了所有的数据信息,非叶子结点仅仅起到索引的作用,所以所有的查询都会走到叶子节点,查询稳定性较高
  3. 在叶子节点之间增加了指针的目的是便于范围搜索,这也是相对于 BTREE 的优势

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值