B-树 和 B+树介绍

B-树 和 B+树介绍

数据库的主要功能就是:存数据查询数据,怎么存就不谈了,重点来看查询数据。
简单看一下数据结构的划分:

数据结构
数据结构

一、hash和二叉树

使用hash查找,直接就是key-value非常快,时间复杂度O(1);使用二叉树从算法上看,也是最优方案,时间复杂度O(logN)。但是,考虑到内存空间的问题,我们不可能一次性把所有数据都加载到内存,内存没有那么大。所以,数据库底层没有使用。

二、磁盘IO

使用二叉树查询时,树高决定了磁盘IO的次数树高,就是从根节点到子节点有多少级。 树越高,发生的磁盘IO次数就越多,耗时就越长!所以,要减少耗费时间,就要减少树的高度

二叉树
二叉树

三、B-树

B-树主要就是解决了树高的问题,把瘦高的树变得矮胖一些。B-树和二叉树的主要区别就是:中间节点存储的是值域边界

B-树
B-树

四、B+树

B+树是对B-树升级,中间加点增加冗余数据, 叶子节点增加链表支持范围查询

B+树
B+树

B+树的优势:

  1. 单一节点存储更多的元素(这样该节点下分支变多了,树变矮胖了),使得查询的IO次数更少。
  2. 所有查询都要查找到叶子节点,查询性能稳定。
  3. 所有叶子节点形成有序链表,便于范围查询。
    来源: https://blog.csdn.net/qq_35571554/article/details/82759668

猜你喜欢

转载自www.cnblogs.com/linyufeng/p/12120217.html