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

简介: 行式存储和列式存储的区别

1、行式存储:

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

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

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

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

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

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

2、列式存储:

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

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

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

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

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

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

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

相关文章
|
存储 NoSQL 关系型数据库
你应该知道一些其他存储——列式存储
你应该知道一些其他存储——列式存储
605 2
|
存储 消息中间件 NoSQL
聊一聊数据库的行存与列存
好多人最开始学习数据库的时候,是关系数据库,数据以表格形式存储,一行表示一条记录。其实这种就是典型的行存储(Row-based store),将表按行存储到磁盘分区上。 而一些数据库还支持列存储(Column-based store),它将表按列存储到磁盘分区上。
聊一聊数据库的行存与列存
|
存储 算法 NoSQL
【数据库系列】什么是列式存储和行式存储
列式存储:每一列单独存放,数据即是索引。只访问涉及得列,如果我们想访问单独一列(比如NAME)会相当迅捷。一行数据包含一个列或者多个列,每个列一单独一个cell来存储数据。行式存储: 把一行数据作为一个整体来存储。学习:https://blog.csdn.net/qq_43543789/article/details/108662140。......
1470 0
【数据库系列】什么是列式存储和行式存储
|
存储 NoSQL 关系型数据库
什么是列式存储,一文秒懂
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 从数据存储讲起 我们最先接触的数据库系统,大部分都是行存储系统。大学的时候学数据库,老师让我们将数据库想象成一张表格,每条数据记录就是一行数据,每行数据包含若干列。
什么是列式存储,一文秒懂
|
存储 SQL 数据采集
一篇文章彻底理解大数据的列式存储
一篇文章彻底理解大数据的列式存储
一篇文章彻底理解大数据的列式存储
|
存储 NoSQL 关系型数据库
什么是列存储?一文秒懂
什么是列存储?一文秒懂
2711 1
|
存储 数据挖掘 OLAP
Doris数据库的效率为什么很高
【6月更文挑战第8天】Doris数据库的效率为什么很高
1329 9
|
网络协议 网络安全 数据安全/隐私保护
三种不同类型的ssh隧道
想通过ssh隧道连接远端机器的VNC服务,对ssh -L命令不太熟悉,man ssh后发现3组与隧道(turnnel)相关的参数:ssh -D,ssh -L,ssh -R,一下子就搞糊涂了,所有下决心仔细研究一番。 何谓SSH隧道 隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。 SSH隧道的类型 ssh隧道有3种类型: 动态端口转发(Socks 代理) 本地端口转发 远端端口转发 动态端口转发
1055 0
|
SQL 数据处理 HIVE
HIVE的数据倾斜调优
hive数据倾斜主要是由shuffle引起的,而引起shuffle的又主要有四种情况,分别为: 1.group by 2.join 3.count(distinct) 4.开窗函数
1109 8

热门文章

最新文章