b树为啥不像lsm一样改随机io为顺序io的方式提升效率
B树的结构上,一个节点就是带有大量的分支的,所以单个节点的大小本身就不小,这其中已经考虑到了磁盘I/O性能的问题,即使一次只读取或者写入一个节点一般也有不低的效率了。B树的应用场景中很重要的一类是数据库,数据库要求事务性,一旦某个数据已经成功写入,就必须是持久化的,即使写完立即断电也要能够重新读取出来,因此记录在内存中然后定期刷到磁盘的方案通常是不可接受的。总结来说,B树的设计本身就是适应直读、直写需要的,因此不使用缓存。
■网友
本人的B+树磁盘存储实现:begeekmyfriend/bplustree
可以看到我就是直读直写的,缓存几乎忽略不计
■网友
B树对内存的占用多当然是一方面。
LSM顺序写入,同一个key多次写入数据会有多份。
这个对事务实现是不友好的。而且也更占存储空间。而且LSM的读效率并不高…当然也有很多辅助的优化手段。那就是另外的话题了。
另外MySQL社区貌似其实也有基于rocksdb做的分支。所以MySQL的存储引擎也是在不停发展和进化的,LSM中的一些好的思路会被吸收,但是那样就不是B树了!至少不满足B树的定义了。
■网友
如果按照教科书的观点来看,b树就是解决随机io的策略,相对地lsm在顺序写的领域(例如追加日志)更有市场,两者侧重点不一样
■网友
硬盘io多慢啊!
【b树为啥不像lsm一样改随机io为顺序io的方式提升效率】 内存,磁盘,cache等访问速度 - marken - 博客频道 - CSDN.NET
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
