Hive部分:行式存储和列式存储的比较

本文探讨了Hive中的行式存储和列式存储的优缺点。行式存储适合频繁的INSERT/UPDATE操作,但查询效率较低,尤其是在大数据量下。而列式存储则能提高查询效率,尤其对于涉及特定列的查询,同时提供更好的压缩率,但INSERT/UPDATE操作相对较复杂,且不适合小量数据扫描。
摘要由CSDN通过智能技术生成

行式存储:

优点:数据被保存在一起了,insert和update更加容易

缺点:选择(selection)时即时只涉及某几列,所有数据也都会被读取

列式存储:

优点:查询时只有涉及到的列会被读取;投影(projection)很高效;任何列都能作为索引

缺点:选择完成时,被选择的列要重新组装,insert/update会比较麻烦

https://blog.csdn.net/wyqwilliam/article/details/81063343

----------------

列式存储和行式存储

首先我们看一下一张表的存储格式

1.1 行式存储

1.2 列式存储

 

1.3列式存储和行式存储的比较

行式存储

优点:

相关的数据是保存在一起,比较符合面向对象的思维,因为一行数据就是一条记录

这种存储格式比较方便进行INSERT/UPDATE操作

缺点:

如果查询只涉及某几个列,它会把整行数据都读取出来,不能跳过不必要的列读取。当然数据比较少,一般没啥问题,如果数据量比较大就比较影响性能

由于每一行中,列的数据类型不一致,导致不容易获得一个极高的压缩比,也就是空间利用率不高

不是所有的列都适合作为索引

 

列式存储

优点:

查询时,只有涉及到的列才会被查询,不会把所有列都查询出来,即可以跳过不必要的列查询

高效的压缩率,不仅节省储存空间也节省计算内存和CPU

任何列都可以作为索引

缺点:

INSERT/UPDATE很麻烦或者不方便

不适合扫描小量的数据

https://www.cnblogs.com/dangjf/p/10071946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值