数据库漫谈

  1、行存储与列存储(参考自http://storage.chinabyte.com/491/12390991.shtml)

  1)行存储:如MongoDB使用文档型的行存储。

  特征:将一行的所有列聚集存储。

  优点:写入(一行)是一次完成,且可以更好地保证数据的完整性。

  缺点:数据读取时,通常需要先将一行完全读出,再在内存中消除不需要的冗余列。

    解析一行数据时,需要在多种数据类型间转换,(在数据量大的时候)比较耗CPU,增加解析时间。

  2)列存储:如Hadoop的HBase。

  特征:每列的全部数据聚集存储。

  优点:数据读取时,每次可以读取某列的部分或全部数据(不存在冗余的问题,对大数据应用很有利)。当然,在读取多列时需要多次移动和定位磁头。

    同列的数据都是同质的,更容易解析(更有利于完整性要求不高的大数据分析)。另外,也更容易设计好的索引、压缩/解压算法。

    适合频繁读取单列或少数几列数据的应用。比如,查询密集型应用(如在线分析、数据挖掘)一般只关心少数几个字段,此时列存储方式的读取可以大大减少I/O。

  缺点:写入次数明显比行存储多,磁头需要多次移动和定位,消耗更多时间。

  改进:安装多块硬盘,多线程并行读写多个列;写过程的完整性问题可以使用回滚和校验机制改进。

 

 

不断学习中。。。

转载于:https://www.cnblogs.com/hanerfan/p/3705141.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值