`

B+tree那点事

 
阅读更多

刚开始学习的时候,百度去查,但发现好多说得太复杂不好理解,结合各个文章总结一下(建议大概看文字,不理解不要紧,然后再看图的执行步骤然后在结合文字,这样一切就清晰好多)

B-tree,B是balance,一般用于数据库的索引。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。而B+tree是B-tree的一个变种,大名鼎鼎的MySQL就普遍使用B+tree实现其索引结构。

  那数据库为什么使用这种结构?

  一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这样的话,索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的指标就是在查找过程中磁盘I/O操作次数的渐进复杂度。换句话说,索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数。

  为了达到这个目的,磁盘按需读取,要求每次都会预读的长度一般为页的整数倍。而且数据库系统将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入。每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上也存储在一个页里,加之计算机存储分配都是按页对齐的,就实现了一个node只需一次I/O。并把B-tree中的m值设的非常大,就会让树的高度降低,有利于一次完全载入

m-way查找树(重点看步骤图)

 

  首先介绍一下m-way查找树,顾名思义就是一棵树的每个节点的度小于等于m。

  故,它的性质如下:

每个节点的键值数小于m每个节点的度小于等于m键值按顺序排列子树的键值要完全小于或大于或介于父节点之间的键值

\"></p>
<div id=

分享到:
评论

相关推荐

    B+树_b+tree_

    In this project you are supposed to implement a B+ tree of order 3 with the following operations: initialize insert (with splitting) and search. The B+ tree should be able to print out itself.Input ...

    B+ tree的java实现

    在IT领域,B+树(B Plus Tree)是一种常见的数据结构,广泛应用于数据库索引、文件系统以及其他需要高效检索的数据存储系统中。B+树的特点是平衡性、分层结构和所有叶子节点在同一层,这使得它在处理大量数据时具有...

    B-tree与B+tree简介

    B-tree与B+tree简介 B-tree和B+tree是两种常用的索引结构,广泛应用于数据库系统和文件系统中。它们的出现是为了解决大规模数据存储中索引查询效率低下的问题。 一、前言 动态查找树主要有三种类型:二叉查找树...

    B+ Tree 增删改查 可视化

    **B+ Tree 知识详解** B+ Tree是一种自平衡的树数据结构,广泛应用于数据库和文件系统的索引存储。它的设计目标是为了在磁盘等慢速存储介质上高效地进行数据检索。以下是对B+ Tree进行详细解释的内容: ### 1. ...

    b+ tree 的c++实现源码

    该资源包含了b+ tree的具体实现代码

    b_plus_tree.rar_b+tree_b+tree磁盘_b+树 文件_plus_磁盘实现B+树

    【标题】:“b_plus_tree.rar_b+tree_b+tree磁盘_b+树 文件_plus_磁盘实现B+树”指的是一个关于B+树在磁盘存储环境中的实现项目。 【描述】:“b+树的实现和测试,模拟磁盘文件工作。一门课程的project。”这表明这...

    B+Tree的一种实现方式

    **B+树(B+ Tree)详解** B+树是一种自平衡的树数据结构,广泛应用于数据库和文件系统中,因为它能保持数据排序并提供快速访问。B+树的主要特点是所有叶子节点都在同一层,非叶子节点只存储键而不存储数据,而叶子...

    B+ tree的java实现和C++实现

    B+树,全称B+ Tree,是一种自平衡的树数据结构,广泛应用于数据库和文件系统中,以高效地支持顺序访问、范围查询以及插入和删除操作。B+树的特点在于其所有数据都存储在叶子节点,且叶子节点之间通过指针链接,形成...

    MySQL - B+Tree伪图

    【MySQL - B+Tree伪图】 B+Tree是数据库管理系统中常用的一种数据结构,尤其在MySQL等关系型数据库中,B+Tree常被用于索引存储。B+Tree的特性使其在大规模数据存储中表现出优秀的查找、插入和删除效率。 **B+Tree...

    为什么MySQL使用B+Tree1

    MySQL选择使用B+Tree作为其主要的数据存储结构,原因在于B+Tree的高效查询和适应磁盘I/O的特性。在数据库系统中,查询和范围查询是最常见的操作,B+Tree能够很好地满足这两种需求。 首先,B+Tree是一种自平衡的多路...

    BTree,B-Tree,B+Tree,BTree都是什么.doc

    B树、B-树、B+树、B*树详解 B树是一种自平衡的二叉查找树,它的每个结点最多只有两个儿子(Left和Right),所有结点存储一个关键字。非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树。B树...

    b+tree_unix.zip_B_tree_The Program_b+tree

    在IT领域,B+树(B+ Tree)是一种被广泛应用于数据库和文件系统中的自平衡查找树数据结构。它的设计目标是为了在磁盘等慢速存储设备上优化数据的访问效率,通过保持数据的有序性,使得多次查找、插入和删除操作能够...

    B+Tree Database

    B+ tree implementation

    OceanBase核心数据结构:In_Memory_B+_Tree.pdf

    OceanBase的In-Memory B+ Tree是OceanBase的核心数据结构之一,它在内存中操作数据,提供插入、更新、删除、点查询和范围查询等操作。MemTable使用两种类型的索引,哈希索引用于点查询,B+ Tree索引用于范围查询。...

    STX B+ Tree C++源代码

    一份非常好的B+树源代码,工业级强度,模板的应用非常巧妙。

    b_plus_tree.zip_b 树_b+tree_b_plus_tree_b树数据库_galles b plus tree

    **B+树(B+tree)详解** B+树是一种高效的数据结构,广泛应用于数据库索引和文件系统中。它的设计目标是优化磁盘I/O操作,因为磁盘的读写速度远慢于内存。B+树的主要特点包括平衡、多路搜索树以及所有数据都存储在...

    B树、B-树、B+树、B树++、R-tree总结

    首先,B树(Binary Search Tree)是一种自平衡的二叉搜索树。它的特点是每个节点最多有两个子节点,遵循左小右大的规则。B树的搜索、插入和删除操作都可以在O(log n)的时间复杂度内完成,其中n是节点数量。但是,未...

    基于C# 可以从叶级删除数据 的B+Tree

    在IT领域,B+Tree(B树)是一种广泛用于数据库和文件系统中的高效数据结构,尤其在处理大数据量时表现出色。本主题聚焦于如何利用C#编程语言实现一个可以从叶级删除数据的B+Tree,这对于大型项目来说至关重要,因为...

    B-tree--BP-tree--B--tree--R-tree.rar_B+_R-Tree_b+tree_btree转换为rt

    在数据库和文件系统中,数据存储和检索的高效性至关重要,这就引出了我们今天要讨论的主题:B树、B+...通过阅读《B-tree》、《B+ tree》、《B tree》和《R tree》这四个文档,你将能深入掌握它们的工作方式和适用场景。

    BTree和B+Tree详解

    "BTree和B+Tree详解" BTree和B+Tree是两种常用的数据结构,广泛应用于数据库索引中。B+Tree是一种自平衡的搜索树,能够保持数据的有序性,同时也能够快速地插入、删除和查找数据。 一、 二叉查找树 二叉查找树...

Global site tag (gtag.js) - Google Analytics