为何Hbase的读取速度很快

B+树的应用场景:主要用在传统的行数据库中,因为查询速度快。但是如有有大量的数据需要查询时就暴露出其弊端。

 

LSM树的应用场景:Hbase就是使用了LSM树。

主要的实现方式:写数据时,第一步,写到预写日志中,目的是防止数据在写入时丢失;

  第二步,将数据放入到内存中。

  第三步,当内存的大小超过指定值,会把内存中的数据写入到磁盘上。

需要注意一个关键点:磁盘的数据是有序的,这是利用预写日志和内存把随机写数据进行排序后写入,因此也能保证稳定的数据插入速率。

LSM的优点:能快速进行数据的合并和拆分。

 

知道hbase的存储形式,接下来讲下hbase为什么能快速的读写删除。

读功能:

读取内容的顺序是先到内存中去寻找,再到磁盘中查找。我们都清楚的一点是,磁盘的查询速度是非常慢的。

问题来了,为什么kafka和hbase的速度非常快的。

这个需要认识到磁盘的一些小知识。我们在查找数据时,首先是去磁盘寻道。这个才是最耗时的。

所以,使用Hbase的范围查询,假如有五个存储文件,最多也就进行五次的磁盘寻道。所以读功能的性能瓶颈也就得到了提升。

删除功能:

删除数据不是进行实质上的删除,也就是磁盘上仍然存在此条数据。只不过是对删除的数据打上了墓碑标记。利用墓碑标记,读数据会忽略此条数据。

当进行小文件合并时,才会进行实质上删除。

 

posted @   上海小墨子  阅读(4107)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示