探索数据存储的奥秘:深入理解B树与B+树

  • key value 类型的数据
  • 红黑树(最优二叉树,内存最优),时间复杂度:O(logn),调整方便;一个结点分出两个叉
  • B树一个节点可以分出很多叉
  • 数据量相等的条件下:红黑树的层数很高,B树的层数就会比较低(一个节点可以分出很多叉)
  • 层数比较低,查找数据的时间比较少;层数影响查询数据的次数

    数据以文件的形式存储
  • 为什么内存(用红黑树)不用B树?
    减少寻址次数,增加对比次数(B树);减少对比次数,增加寻址次 数(红黑树);磁盘寻址时间较长,所以要减少寻址次数,用B树。
  • 数据库底层的数据结构是B+树,提高查询效率。可用于区间查询
    如: select * from user where id>=10 and id<=18
  • B+ 树的优点在于:
  1. 由于B+树在非叶子结点上不包含真正的数据,只当做索引使用,因此在内存相同的情况下,能够存放更多的key。
  2. B+树的叶子结点都是相连的,因此对整棵树的遍历只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而B树则需要进行每一层的递归遍历。
  • B树的优点在于:
  1. 由于B树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但B+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。
相关推荐
码行山野赴时序归途15 小时前
算法效率的度量(上):时间复杂度中的对数思维
c语言·数据结构·算法
一木 之林17 小时前
四、STL容器与数据结构
开发语言·数据结构·c++
_Narcissus_18 小时前
二分算法笔记及例题
数据结构·c++·笔记·算法·蓝桥杯·查找·二分算法
万法若空20 小时前
CSP-J/S 排序算法完整专题训练题单
数据结构·算法·排序算法
凉茶钱20 小时前
【数据结构】排序(快排,选择,直接插入,希尔)
数据结构·算法·排序算法
二十雨辰21 小时前
[Java]-数据集合
数据结构
吴声子夜歌1 天前
Java面试——数据结构(一)
java·数据结构·面试
wabs6661 天前
关于栈【力扣1047. 删除字符串中的所有相邻重复项的思考】
数据结构·c++·算法·leetcode··代码随想录
疯狂打码的少年1 天前
【数据结构】选择类排序:简单选择与堆排序
java·数据结构·笔记·算法
疯狂打码的少年1 天前
【数据结构】排序算法:归并排序与基数排序
数据结构·笔记·算法·排序算法