Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >行式存储与列式存储的区别

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

作者头像
shengjk1
发布于 2025-05-16 03:03:52
发布于 2025-05-16 03:03:52
1340
举报
文章被收录于专栏:码字搬砖码字搬砖

我们知道,当今的数据处理大致可分为两大类,联机事务处理OLTP(on-line transaction processing) 和联机分析处理OLAP(on-line analytical processing).

OLTP与OLAP的区别

OLTP是传统关系型数据库的主要应用,用来执行一些基本的、日常的事务处理,比如数据库记录的增、删、改、查等等。而OLAP则是分布式数据库的主要应用,它对实时性要求不高,但处理的数据量大,通常应用于复杂的动态报表系统上。

OLTP与OLAP的主要区别: | 数据处理类型 | OLTP | OLAP | | :——–: | :—-: | :—: | | 主要的面向对象 | 业务开发人员 | 分析决策人员 | | 功能实现 | 日常事务处理| 面向分析决策 | | 数据模型 | 关系模型 | 多维模型 | | 处理的数据量 | 通常为几条或几十条记录 | 通常达到百万千万条记录 | | 操作类型 | 查询、插入、更新、删除 | 查询为主 |

行式存储与列式存储

传统的关系型数据库采用行式存储法(Row-based),一行中的数据在存储介质中以连续存储形式存在。

列式存储(Column-based)是相对于行式存储来说的,新兴的HBase,GP等分布式数据库均采用列式存储,一列中的数据在存储介质中以连续存储形式存在。

行式存储的适用场景
  1. 适合随机的增删改查操作
  2. 需要在行中选取所有属性的查询操作
  3. 需要频繁插入或更新的操作,其操作与索引和行的大小更为相关

实操中我们会发现,行式数据库在读取数据的时候,会存在一个固有的“缺陷”。比如所选择查询的目标即使只涉及少数几项属性,但由于这些目标数据埋藏在各行数据单元中,而行单元往往又特别大,应用程序必须读取每一条完整的行记录,从而使得读取效率大大降低。 对此,行式数据库给出的优化方案是加“索引”。在OLTP类型的应用中,通过索引机制或给表分区等手段,可以简化查询操作步骤,并提升查询效率。

列式存储的适用场景

但针对海量数据背景的OLAP应用,(例如分布式数据库、数据仓库等等),行式存储的数据库就有些“力不从心”了。行式数据库建立索引和物化视图,需要花费大量时间和资源,因此还是得不偿失, 无法从根本上解决查询性能和维护成本等问题。也不适用于数据仓库等应用场景,所以后来出现了基于列式存储的数据库。

对于数据仓库和分布式数据库来说,大部分情况下它会从各个数据源汇总数据,然后进行分析和反馈。其操作大多是围绕同一列属性的数据进行的 ,而当查询某属性的数据记录时,列式数据库只需返回与列属性相关的值。 在大数据量查询场景中,列式数据库可在内存中高效组装各列的值,最终形成关系记录集,因此可以显著减少IO消耗,并降低查询响应时间。 非常适合数据仓库和分布式的应用

  1. 查询过程中,可针对各列的运算并发执行(SMP),最后在内存中聚合完整记录集,最大可能降低查询响应时间;
  2. 可在数据列中高效查找数据,无需维护索引(任何列都能作为索引),查询过程中能够尽量减少无关IO,避免全表扫描;
  3. 因为各列独立存储,且数据类型已知,可以针对该列的数据类型、数据量大小等因素动态选择压缩算法,以提高物理存储利用率;如果某一行的某一列没有数据,那在列存储时,就可以不存储该列的值,这将比行式存储更节省空间。

不适用的场景:

  1. 数据需要频繁更新的交易场景
  2. 表中列属性比较少的小量数据库场景
  3. 不适合做含有删除和更新的实时操作
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文了解华为Gauss数据库:开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比
数据库是计算机行业的基础核心软件,所有应用软件的运行和数据处理都要与其进行数据交互。2008年阿里提出“去IOE”,而10年之后,我们现在来看,发现Oracle的数据库是最难替换的。不仅是因为Oracle的数据库沉淀了大量的企业客户数据,更是因为数据库产品开发难度确实比较大。数据库的开发难度不亚于操作系统,属于整个IT架构的基础软件(数据库软件在操作系统之上,我们可以将其称为类中间层的基础软件)。而且数据库的开发需要与底层计算架构高度相关和耦合,是适配X86架构,还是适配ARM架构等等。
数据和云
2019/09/19
9.4K0
一文了解华为Gauss数据库:开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比
为什么列式存储更适合OLAP?
列式存储是一种数据存储方式,其核心思想是将数据按列而非按行进行组织和存储。它与传统的行式存储在数据布局、适用场景和性能特征上有显著差异。
闫同学
2025/03/07
1550
为什么列式存储更适合OLAP?
数据库行存储及列存储详解
本文参见:https://blog.csdn.net/Xingxinxinxin/article/details/80939277
全栈程序员站长
2022/09/06
2.9K0
数据库行存储及列存储详解
分布式数据库,你真的了解吗?
分布式数据库进入人们的视野已经很久了。相对于传统的集中式数据库,分布式数据库在高性能、高可用、平滑拓展、高可靠、低成本等许多方面具有优势。 但时至今日,关于分布式数据库,似乎一直缺少足够权威和客观的解读。 现在,国家白皮书来了! 为了明确分布式数据库的概念,梳理分布式数据库的技术体系和应用现状,对未来的技术和应用趋势进行研判,中国软件评测中心牵头组织了腾讯云等厂商参与,调研了国内主要分布式数据库产品厂商,并对部分产品进行了测评,参考了国内外主要研究机构的学术成果,历时半年共同编制了《分布式数据库发展路径研
腾讯云数据库 TencentDB
2021/03/24
1.3K0
为什么 OLAP 需要列式存储
ClickHouse 是最近比较热门的用于在线分析处理的(OLAP)[^1]数据存储,与我们常见的 MySQL、PostgreSQL 等传统的关系型数据库相比,ClickHouse、Hive 和 HBase 等用于在线分析处理(OLAP)场景的数据存储往往都会使用列式存储。
PHP开发工程师
2021/05/28
9120
为什么 OLAP 需要列式存储
别再分库分表了,试试TiDB!
TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。
码猿技术专栏
2023/05/01
1.4K0
别再分库分表了,试试TiDB!
行存储 VS 列存储[通俗易懂]
目前大数据存储有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based)。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量和计算要求,基本是淘汰出局。在已知的几种大数据处理软件中,Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型的行存储。
全栈程序员站长
2022/09/14
5.2K0
行存储 VS 列存储[通俗易懂]
数仓数据处理DB基本概念解析与理解 OLAP OLTP HATP 异同 MPP架构
学习数仓的时候,可能一开始总是被一些英文缩写名字迷惑,OLAP MPP架构 KAPPA架构 ODS等等,这篇文章就来梳理一下这些基本概念。
大鹅
2021/08/05
3.7K0
OLTP + OLAP -> HTAP
之前介绍了数据库的两种最常见的存储模型:NSM 和 DSM (列式存储的起源:DSM),今天介绍这两种存储模型和 HTAP 的联系。
Apache IoTDB
2020/09/27
3.1K0
后端接口如何提高性能?从MySQL、ES、HBASE等技术一起探讨下!
大多数互联网应用场景都是读多写少,业务逻辑更多分布在写上。对读的要求大概就是要快。那么都有什么原因会导致我们完成一次出色的慢查询呢?
架构之家
2022/07/12
5450
后端接口如何提高性能?从MySQL、ES、HBASE等技术一起探讨下!
【大数据哔哔集20210110】后起之秀ClickHouse的优缺点和核心特性
ClickHouse全称是Click Stream,Data Warehouse,简称ClickHouse就是基于页面的点击事件流,面向数据仓库进行OLAP分析。ClickHouse是一款开源的数据分析数据库,由战斗民族俄罗斯Yandex公司研发的,Yandex是做搜索引擎的,就类似与Google,百度等。
大数据真好玩
2021/01/26
2.6K0
数据库的行式存储 VS 列式存储
行存储和列存储,是数据库底层组织数据的方式。(和文档型、K-V 型,时序型等概念不在一个层次)
SQLplusDB
2022/08/22
2.7K0
数据库的行式存储 VS 列式存储
简单谈谈OLTP,OLAP和列存储的概念
在商业数据处理的早期阶段,写入数据库通常对应于商业的交易场景,如: 销售,订单等涉及金钱交易的场景,交易的英文为transaction,也就是事务一词的来源,在计算机领域代表一个逻辑单元的一组读写操作。
大忽悠爱学习
2023/05/02
4.2K0
简单谈谈OLTP,OLAP和列存储的概念
YashanDB存储引擎
存储引擎是数据库核心部件之一,YashanDB通过不同的存储引擎适应不同的应用场景,以获得面向在线交易场景的高效事务处理能力,面向实时分析场景的事务与分析均衡能力,以及面向海量稳态数据分析场景的高性能。
用户11512874
2025/02/19
760
数据库中的 “行式存储”和“列式存储”
传统的关系型数据库,如 Oracle、DB2、MySQL、SQL SERVER 等采用行式存储法(Row-based),在基于行式存储的数据库中, 数据是按照行数据为基础逻辑存储单元进行存储的, 一行中的数据在存储介质中以连续存储形式存在。
一个会写诗的程序员
2019/10/28
12.7K0
数据库中的 “行式存储”和“列式存储”
大数据正当时,理解这几个术语很重要
目前,大数据的流行程度远超于我们的想象,无论是在云计算、物联网还是在人工智能领域都离不开大数据的支撑。那么大数据领域里有哪些基本概念或技术术语呢? 今天我们就来聊聊那些避不开的大数据技术术语,梳理并补充我们对大数据的理解。
大数据技术架构
2019/08/23
2.8K0
你应该知道一些其他存储——列式存储
我们最先接触的数据库系统,大部分都是行存储系统。大学的时候学数据库,老师让我们将数据库想象成一张表格,每条数据记录就是一行数据,每行数据包含若干列。所以我们对大部分数据存储的思维也就是一个复杂一点的表格管理系统。我们在一行一行地写入数据,然后按查询条件查询过滤出我们想要的行记录。
码哥字节
2020/04/13
5300
1000倍!ClickHouse存储A股数据实践
量化回测,苦于MySQL久矣,特别是进行股票日内因子构建分析或全市场因子测试的时候,每当按下回车时,MySQL就跟丢了魂一样,查询费时,大吞吐量读取也非常耗时。虽然MySQL的优化技巧足够写一本书,但这些都需要交给专业的DB工程师去做,量化打工人没有能力更没有时间倒腾这些。那有没有省时省力,高效存储股票行情数据的解决办法呢。带着这个问题,编辑部简单的搜索了一下,总体分为几个方案:
量化投资与机器学习微信公众号
2021/03/09
4K0
OLAP、OLTP的介绍和比较
是传统的关系型数据库(Oracle、Mysql...)的主要应用,主要是基本的、日常的事务处理,数据量小(千万级),准确性及一致性要求高,例如银行交易,商城订单交易。
夹胡碰
2020/11/24
1.8K0
clickhouse概述
ClickHouse全称是Click Stream,Data Warehouse,简称ClickHouse就是基于页面的点击事件流,面向数据仓库进行OLAP分析。ClickHouse是一款开源的数据分析数据库,由战斗民族俄罗斯Yandex公司研发的,Yandex是做搜索引擎的,就类似于Google,百度等。我们都知道搜索引擎的营收主要来源于流量和广告业务,所以搜索引擎公司会着重分析用户网路流量,像Google有Anlytics,百度有百度统计,那么Yandex就对应于Yandex.Metrica。ClickHouse就是在Yandex.Metrica下产生的技术。
公众号-利志分享
2022/04/25
9430
推荐阅读
相关推荐
一文了解华为Gauss数据库:开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档