news 2026/5/1 7:24:01

行式存储 vs 列式存储:原理、差异与真实业务案例解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
行式存储 vs 列式存储:原理、差异与真实业务案例解析

文章目录

  • 一、什么是行式存储和列式存储?
  • 二、核心差异一览
  • 三、业务案例一:订单详情查询(典型 OLTP)
  • 四、业务案例二:销售额统计报表(典型 OLAP)
  • 五、真实对比案例(10 亿订单表)
  • 六、为什么列式存储在分析场景这么快?
  • 七、真实系统中的最佳实践架构
  • 八、选型建议
  • 九、总结

在数据库选型时,很多性能问题并不是 SQL 写得不好,而是存储模型从一开始就选错了

本文将通过原理讲解 + 实际业务案例,帮助你真正理解:

为什么有的系统适合行式存储,有的系统必须用列式存储?


一、什么是行式存储和列式存储?

1️⃣ 行式存储(Row-based Storage)

以“行”为单位存储数据,一行的所有字段在物理上连续存放。

示例表:

order_iduser_idamountstatus
1100199.9PAID
21002199.0PAID

行式存储逻辑结构:

[1, 1001, 99.9, PAID] [2, 1002, 199.0, PAID]

2️⃣ 列式存储(Column-based Storage)

以“列”为单位存储数据,同一列的数据连续存放。

order_id: [1, 2] user_id: [1001, 1002] amount: [99.9, 199.0] status: [PAID, PAID]

二、核心差异一览

对比维度行式存储列式存储
存储单位
查询方式点查扫描
I/O读整行只读列
更新
压缩一般极强
适合场景OLTPOLAP

三、业务案例一:订单详情查询(典型 OLTP)

业务需求

用户在 App 中查看自己的订单详情

SELECT*FROMordersWHEREorder_id=123456;

数据特点

  • 查询单行
  • 高频访问
  • 需要事务保证

行式存储表现(MySQL)

  • 通过B+Tree 索引
  • 一次磁盘 I/O 读取整行
  • 返回完整记录

👉性能极高,毫秒级返回


列式存储表现(ClickHouse)

  • 需要从多个列文件中拼装一行
  • 不适合点查
  • 并发能力弱

明显不适合


结论

订单系统、用户系统必须使用行式存储


四、业务案例二:销售额统计报表(典型 OLAP)

业务需求

统计 2025 年每个月的销售额

SELECTtoMonth(create_time)ASmonth,SUM(amount)AStotal_amountFROMordersWHEREcreate_time>='2025-01-01'GROUPBYmonth;

行式存储的执行方式(MySQL)

  • 扫描整张 orders 表
  • 每一行都读取所有字段
  • 大量无效 I/O

📉数据量一大,查询变慢


列式存储的执行方式(ClickHouse)

  • 只读取create_timeamount两列
  • 列数据连续、压缩率高
  • 向量化并行计算

📈百万级数据,秒级返回


结论

统计分析场景,列式存储碾压行式存储


五、真实对比案例(10 亿订单表)

表规模

  • 订单表:10 亿行
  • 字段数:20
  • 查询字段:2 个

性能对比

存储方式扫描数据量查询耗时
行式存储全行 20 列60+ 秒
列式存储仅 2 列2~3 秒

👉差距来源:I/O + 压缩 + 并行


六、为什么列式存储在分析场景这么快?

1️⃣ 只读取必要的列

  • 减少磁盘 I/O

2️⃣ 高效压缩

  • 同类型数据连续
  • 压缩比 5~10 倍

3️⃣ 向量化执行

  • 一次处理 1024 行
  • CPU Cache 友好

七、真实系统中的最佳实践架构

行式 + 列式 混合使用(最常见)

业务系统 | MySQL(行式存储,OLTP) | CDC / MQ | ClickHouse(列式存储,OLAP)
  • MySQL:写、事务、点查
  • ClickHouse:报表、分析、统计

👉各司其职,性能最大化


八、选型建议

快速判断口诀

写多用行式,算多用列式

场景建议
订单 / 用户行式存储
BI 报表列式存储
实时分析行式 + 列式
数据仓库列式存储

九、总结

  • 行式存储是事务系统的基石
  • 列式存储是分析系统的利器
  • 二者不是替代关系,而是协作关系

一个成熟的系统,一定同时使用行式存储和列式存储

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/17 12:23:03

2.2 预训练模型全家桶:BERT、T5、GPT如何选择与应用

2.2 预训练模型全家桶:BERT、T5、GPT如何选择与应用 引言 在上一节中,我们深入解析了Transformer的核心机制,包括自注意力和位置编码。基于Transformer架构,研究者们开发出了众多优秀的预训练模型,其中最具代表性的就是BERT、T5和GPT系列。这些模型在各种自然语言处理任…

作者头像 李华
网站建设 2026/5/1 7:18:35

完善我的第一个工作流: 增加循环逻辑

1、复制工作流 我们复制 [COZE打造自己的第一个工作流:新闻搜索与总结] 中实现的news工作流,在news工作流的基础上进行修改,实现循环逻辑。 2、添加链接读取插件 (增加新闻详细程度) 在 根据关键词搜索新闻内容 插件的下一步中增加 链接读取插件 选择 链接读取插件 然后添…

作者头像 李华
网站建设 2026/4/12 18:31:26

发布我的第一个智能体到终端应用

完成调试后,单击发布将智能体发布到各种渠道中,在终端应用中使用智能体。目前支持将智能体发布到飞书、微信、抖音、豆包等多个渠道中,你可以根据个人需求和业务场景选择合适的渠道。 1、智能体发布平台选择 目前支持这些平台 这里我们选择发布到飞书以及微信订阅号 2、发…

作者头像 李华
网站建设 2026/4/18 0:40:06

于Spring boot的名城小区物业管理系统(11717)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告)远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/5/1 5:42:04

8.6 AI员工ROI评估:如何量化AI员工的价值和投资回报

8.6 AI员工ROI评估:如何量化AI员工的价值和投资回报 引言 在前面的章节中,我们学习了如何创建AI员工、优化性能、部署监控。但作为企业决策者,最关心的问题是:**AI员工到底值不值得投资?能带来多少回报?**本节将为你提供一套完整的AI员工ROI(投资回报率)评估体系,帮…

作者头像 李华