mysql,hbase,mongodb针对数据顺序存储的实现

数据库存储结构对比
本文探讨了MySQL、Oracle、HBase及MongoDB等数据库系统的存储结构和技术特点,包括索引组织表、sstable与LSM-tree的应用,以及这些技术如何影响数据的插入与扫描效率。

mysq,oracle的索引组织表是按主键顺序存储数据的(页内)。

如果数据插入顺序和主键不一致,页间无法保证物理上的顺序存储。移动数据块的代价很大。可以通过工具重新顺序化存储结构。

mysql新增数据块时,会留一定的空间给未来新增的数据用,另外当数据块的充满程度达到一定比例时,不会再允许新增数据

因为需要留出一定的空间给更新数据使用(主要是适应varchar字段变化)。页内会顺序存储。所以mysql的数据块大小,空闲比例设置直接影响页碎片化程度。

hbase和mongodb使用了sstable,LSM tree相关技术,定期的整理合并数据块,所以数据块都是按主键顺序存储的。不会有碎片。合并期间对系统影响也很小。

hbase存储时数据是压紧甚至压缩,占用资源很少,节省了大量io,内存。而mysql和oracle的存储方案会有很多行空隙。

hbase在插入和顺序扫描效率更有优势。

另外hbase的列式存储方式效率应该比mongodb的文档方式高。不过由于mongodb,hbase对稀疏数据都是压紧存储的。所以没有想象那么大。

而mongodb由于支持二级索引,这点和关系库类似。适用的场景也更多。

转载于:https://www.cnblogs.com/reachlins/p/7724999.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值