首页 > 其他分享 >B+Tree树

B+Tree树

时间:2023-03-02 20:56:01浏览次数:38  
标签:链表 Tree 叶子 数据结构 节点 指针

实际上它就是B树的变种,以一颗最大度数(max-degree)为4(4阶)的b+tree为例:

所有的元素都会出现在叶子节点,

叶子节点形成一个单向链表,每一个节点都会通过一个指针指向下一个元素。

Mysql索引数据结构对经典的B+Tree树结构进行了优化。在原B+Tree树的基础上,增加了一个指向相邻叶子节点的链表指针,就形成了一个带有顺序指针的B+Tree,提高区间的访问性能。有利于数据库的排序操作。

每个数据节点都是存储在一个页当中的。

可以通过一个数据结构可视化的网站来简单演示一下。 https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html

插入一组数据: 100 65 169 368 900 556 780 35 215 1200 234 888 158 90 1000 88 120 268 250 。然后观察一些数据插入过程中,节点的变化情况。

 

 

 

最终我们看到,B+Tree 与 B-Tree相比,主要有以下三点区别:
  所有的数据都会出现在叶子节点。
  叶子节点形成一个单向链表。
  非叶子节点仅仅起到索引数据作用,具体的数据都是在叶子节点存放的。

MySQL索引数据结构对经典的B+Tree进行了优化。在原B+Tree的基础上,增加一个指向相邻叶子节点
的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能,利于排序。

 

标签:链表,Tree,叶子,数据结构,节点,指针
From: https://www.cnblogs.com/wekenyblog/p/17173436.html

相关文章

  • 记录一个mongo数据库TreeMap结构导致数据异常的BUG
    BUG:mongo入库丢失了某些字段,没报错场景:java代码调用mongo入库,一个嵌套结构体,在内部某一层嵌套增加一个对象结构,有几个常量和嵌套对象,2个Map<String,String>,1个Map<String,......
  • SPOJ Query On A Tree IV 题解
    SPOJQueryOnATreeIV题解一个边分治套线段树套堆的题目比较难写但是有不小的启发思路来源和代码都抄自[SPOJ-QTREE4]QUERYONATREEIV题解|KSKUN'sBlog简......
  • tree数据结构处理
    importReactfrom'react';interfaceRootObject{createUserId?:any;createUserName?:any;createTime?:any;updateUserId?:any;updateUserName?:a......
  • ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
    目录建表折叠数据算法资料分享参考文章该引擎继承于MergeTree,并在数据块合并算法中添加了折叠行的逻辑。CollapsingMergeTree会异步的删除(折叠)这些除了特定列Sign有1和-1......
  • Delphi:利用TreeView 的data属性存储相关数据
    Delphi:利用TreeView的data属性存储相关数据TreeView利用data属性存储相关数据在Delphi中,TreeView控件是一款很出色而且很常用的控件。在使用过程中,了解到其TTreeNod......
  • Qtreewidget置顶和取消置顶功能
    1.1  Treewidget置顶和取消置顶 需求中有个置顶案件的需求,取消置顶之后,被取消的案件在最后一个置顶案件下面,新建的案件也要在置顶案件下面,Treewidget本身没有置顶的......
  • Qtreewidget滚动条宽度根据内容自适应调整
    1.1  组织树treewidget滚动条宽度根据内容自适应调整  Treewidget只有在多列时,才会自适应显示横向滚动条,并且根据内容自动调整滚动条的大小,为了实现任务列表自适应......
  • QtreeWidget实现模糊搜索功能
    在输入框输入检索关键字,然后根据输入的关键字去搜索任务列表,只显示包含检索关键字的项随着输入文字的变化,不断的刷新搜索内容;效果如下所示。  搜索函数实现方法如下所......
  • vue的element,el-select与el-tree配合使用,实现下拉树状
    HTML<el-selectref="stlectTree"v-model="treeSelectText"placeholder="请选择"size="small"><el-option:value="tre......
  • 【学习笔记】Segment Tree Beats 学习笔记
    前置知识:线段树常规操作的复杂度证明单点修改、查询线段树高为\(O(\logn)\),因此单点操作复杂度单次\(O(\logn)\),总复杂度\(O(q\logn)\)。区间修改、查询在懒标记......