博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hbase——b树,b+树,lsm树
阅读量:4344 次
发布时间:2019-06-07

本文共 748 字,大约阅读时间需要 2 分钟。

b树

b树,又叫做平衡多路查找树。一个m阶的b树的特性如下:

  1. 树中的每个节点,最多有m个子节点。
  2. 除了根节点之外,其他的每个节点至少有ceil(m/2)个子节点,ceil函数为取上限函数。
  3. 所有的叶子节点都在同一层,叶子节点bubaohan任何关键信息。
  4. 每个非叶子节点都包含有n个关键字信息:{n,a0,k1,a1,k2,……,kn,an},
    • n的取值范围,[ceil(m/2)-1]<=n<=(m-1)
    • Ki(i=1...n)为关键字,且关键字的信息按照顺序排序
    • Ai(i=0...n)为指向子节点的指针,且Ai指向的子树节点的关键字信息必须大于ki,并且小于k(i+1)

上图为一个3阶的b树,即m=3

  1. 每个节点最多有3个子节点
  2. 每个节点最少有ceil(m/2)=2个子节点
  3. 每个节点至少有1<=n<=2个关键字信息

对于一棵节点为N阶数为M的树,查找和插入需要的比较次数为logM-1N~logM/1

b+树

b+树是b树的一个变种,差别如下

  1. 所有的叶子节点中包含了全部的关键字信息,以及指向含有这些关键词信息记录的指针
  2. 叶子节点中的关键字信息是有序链接的
  3. 非叶子节点相当于是叶子节点的索引,叶子节点相当于是存储数据的数据层

 

lsm树

lsm树(log-Structured Merge-Trees)原理是将一棵大树拆分成了多棵小树,每棵小树其实是一个有序的b+树。数据写入首先写入到内存中,随着小树越来越大,小树flush到磁盘中。磁盘中的小树数量到达一定量后,对这些小树做merge操作,合并成了一棵大的b+树。lsm树牺牲了部分读性能(因为需要遍历多棵小树)来提高了写性能。

 

转载于:https://www.cnblogs.com/cnblog-ycc/p/9841528.html

你可能感兴趣的文章
Jenkins安装配置
查看>>
个人工作总结05(第二阶段)
查看>>
Java clone() 浅拷贝 深拷贝
查看>>
深入理解Java虚拟机&运行时数据区
查看>>
02-环境搭建
查看>>
spring第二冲刺阶段第七天
查看>>
搜索框键盘抬起事件2
查看>>
阿里百川SDK初始化失败 错误码是203
查看>>
透析Java本质-谁创建了对象,this是什么
查看>>
BFS和DFS的java实现
查看>>
关于jquery中prev()和next()的用法
查看>>
一、 kettle开发、上线常见问题以及防错规范步骤
查看>>
eclipse没有server选项
查看>>
CRC码计算及校验原理的最通俗诠释
查看>>
使用Gitbook来编写你的Api文档
查看>>
jquery扩展 $.fn
查看>>
Markdown指南
查看>>
influxDB的安装和简单使用
查看>>
JPA框架学习
查看>>
JPA、JTA、XA相关索引
查看>>