openGauss支持行列混合存储。行存储是指将表按行存储到硬盘分区上,列存储是指将表按列存储到硬盘分区上。
行、列存储模型各有优劣,建议根据实际情况选择。通常openGauss用于OLTP(联机事务处理)场景的数据库,默认使用行存储,仅对执行复杂查询且数据量大的OLAP(联机分析处理)场景时,才使用列存储。默认情况下,创建的表为行存储。行存储和列存储的差异请参见图1。
图 1 行存储和列存储的差异

上图中,左上为行存表,右上为行存表在硬盘上的存储方式。左下为列存表,右下为列存表在硬盘上的存储方式。
行、列存储有如下优缺点:
存储模型 | 优点 | 缺点 |
---|
行存 | 数据被保存在一起。INSERT/UPDATE容易。 | 选择(SELECT)时即使只涉及某几列,所有数据也都会被读取。 |
列存 | - 查询时只有涉及到的列会被读取。
- 投影(Projection)很高效。
- 任何列都能作为索引。
| - 选择完成时,被选择的列要重新组装。
- INSERT/UPDATE比较麻烦。
|
一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不多的情况下,适合列存储。如果表的字段个数比较少,查询大部分字段,那么选择行存储比较好。
存储类型 | 适用场景 |
---|
行存 | - 点查询(返回记录少,基于索引的简单查询)。
- 增、删、改操作较多的场景。
- 频繁的更新、少量的插入。
|
列存 | - 统计分析类查询 (关联、分组操作较多的场景)。
- 即席查询(查询条件不确定,行存表扫描难以使用索引)。
- 一次性大批量插入。
- 表列数较多,建议使用列存表。
- 如果每次查询时,只涉及了表的少数(
相关推荐openGauss学习笔记-191 openGauss 数据库运维-常见故障定位案例-出现Error:No space left on device提示191.1 出现“Error:No space left on device”提示191.1.1 问题现象191.1.2 原因分析191.1.3 处理办法 openGauss学习笔记-191 openGauss 数据库运维-常见故障定位案例-出现E 本文实例讲述了mysql触发器原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是触发器 创建触发器 单条触发器语句 多条触发器语句 查看触发器 删除触发器 触发器的新 本文实例讲述了mysql触发器原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是触发器 创建触发器 单条触发器语句 多条触发器语句 查看触发器 删除触发器 触发器的新旧记录引用 首发日期:2018-04- 1.内存淘汰的意义与挑战 在这一节中,我们将讨论为什么Redis需要内存淘汰策略以及面临的挑战。我们会引入内存淘汰的概念,解释为什么在Redis中需要找到合适的数据淘汰方式。 内存淘汰的意义 在现代应用中,数据量不断增长,需要高速的数据存储和访问。然而,内存资源有限,如何优雅地管理数据成为一个挑战。这时,内存淘汰策略的出现变得至关重要。 为什么Redis需要内存淘汰策略 Redis是一种基于内存的 特性优势 初级用户学习openGauss门槛高让你望而却步? openGauss Datakit一键化安装企业版集群、监控、日志分析、SQL诊断,让你快速上手,快速部署,从容面对企业环境! 不同openGauss版本运维命令让你晕头转向? openGauss Datakit屏蔽命令差异,可视化操作,屏蔽命令差异,让你不再为细节犯愁,轻松驾驭openGauss数据库! 数据迁移和校验速度慢成了难题? 使用Java和Redis构建分布式博客系统:如何处理大量文章数据 引言:随着互联网技术的快速发展,博客已成为广大用户分享知识、观点和经验的重要平台。随之而来的是大量的文章数据需要进行存储和处理。为了应对这个挑战,使用Java和Redis构建分布式博客系统是一种有效的解决方案。本文将介绍如何利用Java和Redis处理大量文章数据,并提供代码示例。 一、数据模型设计在构建分布式博客系统之前,我们需要 回到顶部 |