行式存储和列式存储的区别

1、行式存储:

(1)概念: 行式存储是以行为单位进行存储,将一整行数据作为一个存储单元,数据是按行存储的。

(2)特点: 在写性能方面,性能较高,因为写入是一次完成的;

在读性能方面,读取少数几列时,需要遍历其他无关列,所以IO开销较大。读取整行数据时,按存储顺序依次读取即可,性能较高。

在数据压缩方面,因为一行中数据有多种类型,所以压缩效果较差。

(3)场景: 这种存储适合读取整行数据的场景,如在线事务处理系统。

(4)行式存储典型代表: TextFile、SequenceFile

2、列式存储:

(1)概念: 列式存储是以列为单位进行存储,将每个字段独立存储。

(2)特点: 在写性能方面,因为把一行记录拆分成单列保存,所以写入次数明显比行存储多,效率较低。

在读性能方面,读取少数几列时,不需要读取无关列,所以性能高。读取整行时,需要分别读取所有列,并且拼装成行,所以性能低。

在数据压缩方面,因为数据是以列为单位进行存储的,而同一列的数据类型是相同的,所以对压缩算法友好,压缩效率高。

(3)场景: 这种存储方式适合大规模数据分析场景,如数据仓库、商业智能。

(4)列式存储典型代表: ORC、Parquet

行式存储和列式存储在效率上的区别可参考: 列式存储和行式存储有什么区别?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值