数据库的行式存储 VS 列式存储

2022-08-22 13:29:42 浏览数 (1)

编者按:技术也要走T型路线。

【免责声明】本号文章仅代表个人观点,与任何公司无关,仅供参考。

编辑|SQL和数据库技术(ID:SQLplusDB)

行式存储 VS 列式存储

行存储和列存储,是数据库底层组织数据的方式。(和文档型、K-V 型,时序型等概念不在一个层次)

传统的关系型数据库,如DB2、MySQL、SQL SERVER、Postgresql 等采用行式存储法(Row-based),在基于行式存储的数据库中, 数据是按照行数据为基础逻辑存储单元进行存储的, 一行中的数据在存储介质中以连续存储形式存在。

列式存储(Column-based)是相对于行式存储来说的,新兴的 Hbase、HP Vertica、EMC Greenplum 等分布式数据库均采用列式存储。在基于列式存储的数据库中, 数据是按照列为基础逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在。

Oracle 双模式架构

对于Oracle而言,如果开启了In-Memory选项的话,会提供双模式架构:

  • 行式模式:磁盘(数据文件)和高速缓存(buffer cache)中,能够快速访问记录中的所有列,适合DML,满足OLTP类型应用。
  • 列式模式:根据设置加载到In-Memory Area中,适合数据分析和聚合等操作,满足OLAP类型的查询需求。

图:Oracle’s unique dual-format architecture

图:Dual-Format Database

图:Columnar and Row-Based Storage

参考: https://www.oracle.com/a/tech/docs/twp-oracle-database-in-memory-19c.pdf

Oracle Database In-Memory with Oracle Database 19c

https://docs.oracle.com/en/database/oracle/oracle-database/19/inmem/

Database In-Memory Guide 2.1 Dual-Format: Column and Row

https://www.jianshu.com/p/3d3950c9fb06

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

https://zhuanlan.zhihu.com/p/378814476

行式存储?列式存储?区别是啥???

https://zhuanlan.zhihu.com/p/129342230

什么是列式存储,一文秒懂

https://developer.aliyun.com/article/793584

列式存储 vs 行式存储:它们之间的本质区别在哪里?

0 人点赞