数据库里的BTREE索引

本文主要探讨BTREE索引,它是数据库中常见的索引类型之一。内容包括BTree的基本概念、特性以及通过实例展示其分裂过程,帮助理解其工作原理。

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

提到索引自然是有四种主流索引,分别是:BTREE,HASH,R-TREE,Full-Text,不同的引擎支持不同的索引,这里主要理解BTREE索引。

BTree又叫多路平衡搜索树,一颗m叉的BTree特性如下:

  • 树中每个节点最多包含m个孩子。
  • 除根节点与叶子节点外,每个节点至少有[ceil(m/2)]个孩子。
  • 若根节点不是叶子节点,则至少有两个孩子。
  • 所有的叶子节点都在同一层。
  • 每个非叶子节点由n个key与n+1个指针组成,其中[ceil(m/2)-1]<=n <= m-1

先来看m=5的一个5叉BTree:插入如下所有字母C N G A H E K Q M F W L T Z D P R X Y S
在这里插入图片描述
分析一下,当前已经有4个key和5个指针组成,满足最后一条特性,当我们再插入H时,已经不满足[ceil(m/2)-1]<=n <= m-1这个范围,所以这个数据块会分裂开,中间的会分裂成父节点。如下所示:这正好验证若根节点不是叶子节点,则至少有两个孩子的特性在这里插入图片描述
父节点也满足1个key和2个指针,分别指向左,右两个数据块。继续插入E,K,Q,不发生变化:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值