深度对比!Hbase 和 MySQL 的区别是什么?

点击关注公众号,回复“1024”获取2TB学习资源!

MySQL + HBase是我们日常应用中常用的两个数据库,分别解决应用的在线事务问题和大数据场景的海量存储问题。

从架构对比看差异

相比MySQL,HBase的架构特点:
  • 完全分布式(数据分片、故障自恢复)

  • 底层使用HDFS(存储计算分离)。

由架构看到的能力差异
  • MySQL:运维简单(组件少)、延时低(访问路径短)

  • HBase:扩展性好、内置容错恢复与数据冗余

e79c6a813caf58cf984966022c86c491.png b98b36f902c1186cff4a05f4b39d6881.png

从引擎结构看差异

df9f3319e6111cf4d489f6065c316656.png 63bcf3f000687c446e8eb5a762164fad.png
相比MySQL,HBase的内部引擎特点:
  • HBase原生没有SQL引擎(无法使用sQL访问,使用APlI),云HBase增强版(Lindorm)及开源Phoenix均提供sQL能力

  • HBase使用LSM(Log-Structure Merge)树,,Innodb使用B+树。

93019021aff65b40fb093b4911ca6783.png 5e56e2dca157285f90b8f17507caa5d8.png
由引擎结构(B+Tree vs LSM Tree)看到的能力差异:
  • MySQL:读写均衡、存在空间碎片

  • HBase:侧重于写、存储紧凑无浪费、Io放大、数据导入能力强

关于LSM树和B+树的理解

目的是为了减少磁盘IO,

索引:某种数据结构,方便查找数据

hash索引不利于范围查询,使用树结构

B+树
  • 从磁盘读数据是以页为单位,根据这个特点使用平衡多路查找树

  • B+树的非叶子节点存放索引,叶子节点存放数据

  • 非叶子节点能够存放更多的索引,树的高度更低

  • 叶子节点通过指针相连,有利于区间查询

  • 叶子节点和根节点的距离基本相同,查找的效率稳定

  • 数据插入导致叶子节点分裂,最终导致逻辑连续的数据存放到不同物理磁盘块位置,导致区间查询效率下降

LSM Tree
  • LSM(Log-Structured Merge),LevelDB,RocksDB,HBase,Cassandra等都是基于LSM结构

  • HDD,SSD顺序读写的速度都高于随机读写,写入日志就是顺序写

  • WAL,memtable,sstable

  • 有利于写,不利于读,先从memtable查找,再到磁盘所有的sstable文件查找

  • Compaction的目的是减少sstable文件数量,缓解读放大的问题,加速查找可以对sstable文件使用布隆过滤器

  • Compaction策略

  • STCS(SIze-Tiered Compaction Strategy)空间放大和读放大问题

  • LCS(Leveled Compaction Strategy)写放大问题

  • Compaction会引入写放大问题,在Value较大时采用KV分离存储缓解写放大

  • 写操作多于读操作时,LSM树有更好的性能,因为随着insert操作,为了维护B+树结构,节点分裂。读磁盘的随机读写概率会变大,性能会逐渐减弱。LSM树相比于B+树,多次单页随机写变成一次多页随机写,复用了磁盘寻道时间,极大提高写性能。不过付出代价就是放弃部分读性能。

数据访问

相同之处:数据以表的模型进行逻辑组织,应用对数据进行增删改查

不同之处:MySQL的SQL功能更丰富:事务能力更强,HBase既可以用APIl进行更灵活、性能更好的访问,也可以借助Phoenix使用标准sQL访问;只支持单行事务。

HBase的特色功能--TTL

39f56b62698bc4560c3b12a4fec75d20.png

HBase的特色功能—多版本

5eff059f880907b573e641bc872939e1.png

HBase的特色功能—多列簇

04b32c3ce0bf867b1f9682728e0a933e.png

HBase的特色功能—MOB

28907913eaac36a1c318ce7fe2fe532b.png

从生态看差异

MySQL:满足APP的在线数据库存储,一般有我足矣

b9f5012c02ee391d43bbd7afbf2ff21c.png

大数据圈:应用于大数据场景的存储、计算及管理组件

dc0320d9c685c0ecf0392d75b727fb3b.png
  • MySQL:一般可独立满足在线应用的数据存储需求,或者与少量组件配合(如缓存、分库中间件)

  • HBase:一般需要和较多大数据组件一起配合完成应用场景,场景架构的设计、实施存在较大的挑战

总结

e79d5b0788b0ea38e049e1c3b536aa80.png
哪些场景的存储适合HBase ?
0c8d509e74480c8e17fa6479b9a1d2ea.png cc6549802f68811e6c34fb1d5336a899.png 8cee9402ed4cdb6cbd8e312ce46470a5.png 733c251516198f042e5e5cf9b26ad359.png 63c04d57442a196239981d09fba651ec.png 6c62f68c724390b4fdf93e93225130f4.png 3fadf385410d0a5558b780e128452659.png 67ccf0c3b1f35a3b94bcb2fbf44498a2.png 3915314a641e882a38924fbe70c103b7.png 5fa2575ece94cbf0f128f29fc2b17b97.png e14c0a08c08853473c22d2f5e02f03ff.png

HBase不是MySQL的替换,HBase是业务规模及场景扩张后,对MySQL的自然延伸

42c0142fac16cba131df1c34c0765f77.png

blog.csdn.net/weixin_41605937/article/details/110933984

48791bf931e57661b5e8b7507d867ba5.png

ae9b63bb62f9ca4ef5fc0f78b62e836a.png

推荐阅读 点击标题可跳转

Windows 11 它来了,无需安装即可体验!

华为宣布将发布全新操作系统!任正非发话

你的电脑也许正被公司“监控”!2 招教你摆脱各式“监控”

花呗接入央行征信系统!会影响贷款吗?

某司领导称“ 80 后该退出 IT 行业”,群里爆粗口。。。

这家科技公司的放假通知火了!够横的

全球首发!USB4 终于来了:享受4万兆宽带

从零搭建 SpringCloud 服务

MySQL 架构总览->查询执行流程->SQL 解析顺序

f4b744217b240ec702c46b7db93d4b8d.png

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。

随手在看、转发是最大的支持!2ba4ec0f7b025242f231a31cc80a9e9d.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值