[转帖]数据库之 列式与行式数据库区别

数据库,列式,区别 · 浏览次数 : 0

小编点评

**列式存储** 列式存储是一种数据库存储方法,将数据按照列存储到数据库中。与行式存储不同,列式存储按照列存储数据,与行式存储类似。 **列式存储的优点:** - 大幅降低系统的I/O,尤其是在海量数据查询时,I/O向来是系统的主要瓶颈之一。 - 数据以列为单元存储,完全不用考虑数据建模或者说建模更简单了。 - 允许对哪些列上的数据进行查询,直接读取列就行。 **列式存储的应用场景:** - 数据仓库领域:数据分析、海量存储和商业智能 - OLTP应用:基于增删改查操作的应用

正文

定义

列式存储(Column-based)是相对于传统关系型数据库的行式存储(Row-based)来说的。简单来说两者的区别就是如何组织表。

将表放入存储系统中有两种方法,而我们绝大部分是采用行存储的。行存储法是将各行放入连续的物理位置,这很像传统的记录和文件系统。列存储法是将数据按照列存储到数据库中,与行存储类似,下图是两种存储方法的图形化解释。

应用行式存储的数据库系统称为行式数据库,同理应用列式存储的数据库系统称为列式数据库。随着列式数据库的发展,传统的行式数据库加入了列式存储的支持,形成具有两种存储方式的数据库系统。

传统的关系型数据库,如Oracle、DB2、MySQL、SQL SERVER等采用行式存储法,当然传统的关系型数据库也在不断发展中。随着Oracle 12c推出了in memory组件,使得Oracle数据库具有了双模式数据存放方式,从而能够实现对混合类型应用的支持:传统的以行形式保存的数据满足OLTP应用;列形式保存的数据满足以查询为主的OLAP应用。

新兴的Hbase、HP Vertica、EMC Greenplum等分布式数据库采用列式存储,当然这些数据库也有对行式存储的支持比如HP Vertica。

随着传统关系型数据库与新兴的分布式数据库不断的发展,列式存储与行式存储会不断融合,数据库系统会呈现双模式数据存放方式,这也是商业竞争的需要。

区别

为啥列存储可以大幅降低系统的I/O呢?

列式存储的主要优点之一就是可以大幅降低系统的I/O,尤其是在海量数据查询时,I/O向来是系统的主要瓶颈之一。通过下面这张图,相信大家能够彻底明白这一点。

应用场景

 

在比较了行式数据库与列式数据库之后,我们更关心的是如何根据业务场景需要选择对应的数据库系统。

 

行式更适合OLTP,比如传统的基于增删改查操作的应用。列式更适合OLAP,非常适合于在数据仓库领域发挥作用,比如数据分析、海量存储和商业智能;涉及不经常更新的数据。

 

由于设计上的不同,列式数据库在并行查询处理和压缩上更有优势。而且数据是以列为单元存储,完全不用考虑数据建模或者说建模更简单了。要查询计算哪些列上的数据,直接读取列就行。

 

最后我们需要务实的指出,没有万能的数据库,列式数据库也并非万能,只不过给DBA提供了更多的选择,DBA需根据自己的应用场景自行选择。

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树数据库组成63208 人正在系统学习中

与[转帖]数据库之 列式与行式数据库区别相似的内容:

[转帖]数据库之 列式与行式数据库区别

定义 列式存储(Column-based)是相对于传统关系型数据库的行式存储(Row-based)来说的。简单来说两者的区别就是如何组织表。 将表放入存储系统中有两种方法,而我们绝大部分是采用行存储的。行存储法是将各行放入连续的物理位置,这很像传统的记录和文件系统。列存储法是将数据按照列存储到数据库

[转帖]什么是ClickHouse?

什么是ClickHouse? ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 在传统的行式数据库系统中,数据按如下顺序存储: RowWatchIDJavaEnableTitleGoodEventEventTime #0 89354350662 1 Investo

[转帖]TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践

返回全部 边城元元案例实践2022-08-02 复杂业务查询对于传统的关系型数据库来说是一种考验,而通过 TiKV 行存与 TiFlash 的列存结合使用就能很好地应对。本文根据 TUG 用户边城元元在 TiDB 社区技术交流石家庄站的分享整理,详细介绍了 TiKV & TiFlash 加速复杂业务

[转帖]一文快速入门 ClickHouse

https://zhuanlan.zhihu.com/p/621480049 什么是clickhouse ClickHouse是一种OLAP类型的列式数据库管理系统,这里有两个概念:OLAP、列式数据库。这两个概念会在接下来做介绍,ClickHouse完美的实现了OLAP和列式数据库的优势,因此在大

[转帖]Clickhouse单机及集群部署详解

https://www.cnblogs.com/ya-qiang/p/13540016.html 一、ClickHouse简介 ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内社区火热,各个大厂纷纷跟进大规模使用: 今日头条 内部用ClickHouse

[转帖]tgz 安装clickhouse

一、什么是clickhouse ClickHouse是开源的列式存储数据库(DBMS),主要用于在线处理查询(OLAP),能够使用SQL查询实时生成数据分析报告。 下面介绍下安装clickhouse。 二、安装前的准备1、Centos取消打开文件数限制在/etc/security/limits.co

[转帖]什么是HBase?终于有人讲明白了

http://blog.itpub.net/70024420/viewspace-2929074/ 初识HBase HBase 是一个面向列式存储的分布式数据库,其设计思想来源于 Google 的 BigTable 论文。HBase 底层存储基于 HDFS 实现,集群的管理基于 ZooKeeper

[转帖]jmeter之使用csv文件传递参数-05篇

csv文件格式,第一列为手机号,第二列为密码 1.右键添加一个配置元件 csv数据文件设置 2.设置csv数据提取路径 3.引用数据 4.设置线程循环运行两次,然后发送请求 看到结果就执行了两次,取得用户名和密码发生了变化

[转帖]Python基础之数据类型(一)

https://www.jianshu.com/p/5c43f6056f77 Python基本数据类型 python系列文档都是基于python3 数字 字符串 列表 元组 字典 集合 一、数字 特性: 只能存放一个值 一经定义,不可更改 直接访问 整型十进制转二进制bin(10)十进制转八进制oc

[转帖]TiDB 数据库统计表的大小方法

简介:TiDB统计表的大小,列出了一些方法: 1、第一种的统计方式: 基于统计表 METRICS_SCHEMA.store_size_amplification 要预估 TiDB 中一张表的大小,你可以参考使用以下查询语句: SELECT db_name, table_name, ROUND(SUM