-
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
图片
HBase的特色功能—多版本
图片
HBase的特色功能—多列簇
图片
HBase的特色功能—MOB
图片
从生态看差异
MySQL:满足APP的在线数据库存储,一般有我足矣
图片
大数据圈:应用于大数据场景的存储、计算及管理组件。java面试资料,公众号Java精选,回复Java面试,获取面试资料。
图片
-
MySQL:一般可独立满足在线应用的数据存储需求,或者与少量组件配合(如缓存、分库中间件)
-
HBase:一般需要和较多大数据组件一起配合完成应用场景,场景架构的设计、实施存在较大的挑战
总结
图片
哪些场景的存储适合HBase ?
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
HBase不是MySQL的替换,HBase是业务规模及场景扩张后,对MySQL的自然延伸
作者:庄小焱
https://blog.csdn.net/weixin_41605937/article/details/110933984
本文为CSDN博主「chilx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
------ THE END -------
精品资料,超赞福利!
>Java精选面试题<
3000+ 道面试题在线刷,最新、最全 Java 面试题!
期往精选 点击标题可跳转
【144期】拼多多面试官问:假设使用 Redis, 如何统计独立用户访问量?
【145期】面试官:Java 数组中 new Object[5] 语句是否创建了 5 个对象?
【146期】面试官问:说一说 RabbitMQ 的几种工作模式和优化建议?
【147期】面试官问:说一说 Lombok 中的 @Builder 作用和用法!
【148期】面试官问:select…for update 会锁表还是锁行?
【149期】还在用 Elasticsearch ?事实证明 ClickHouse 更强大!
【150期】面试官:Spring Boot 静态获取 bean 的三种方式,你知道哪些?
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
分享一些系统的面试题,大家可以拿去刷一刷,准备面试涨薪。
这些面试题相对应的技术点:
- JVM
- MySQL
- Mybatis
- MongoDB
- Redis
- Spring
- Spring boot
- Spring cloud
- Kafka
- RabbitMQ
- Nginx
- …
大类就是:
- Java基础
- 数据结构与算法
- 并发编程
- 数据库
- 设计模式
- 微服务
- 消息中间件
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
.(img-w1nWksr2-1713521549780)]
[外链图片转存中…(img-p78U3IMe-1713521549782)]
[外链图片转存中…(img-oxBhSerj-1713521549784)]
[外链图片转存中…(img-3x4Qn5uD-1713521549785)]
[外链图片转存中…(img-H8Wx52tZ-1713521549787)]
[外链图片转存中…(img-3hWyJZgE-1713521549789)]
[外链图片转存中…(img-zU1TjTPo-1713521549791)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!