SAP HANA 行存储和列存储表


SAP HANA 模型视图只能在基于列的表的顶部创建。在列表中存储数据并不是什么新鲜事。早些时候,人们认为在基于列的结构中存储数据会占用更多的内存空间,并且没有性能优化。

随着 SAP HANA 的发展,HANA 在信息视图中使用了基于列的数据存储,并展示了列存储表相对于基于行的表的真正优势。

列存储

在列存储表中,数据垂直存储。因此,类似的数据类型会像上面示例中显示的那样组合在一起。它借助内存计算引擎提供了更快的内存读取和写入操作。

在传统数据库中,数据以基于行的结构(即水平)存储。SAP HANA 以基于行和基于列的结构存储数据。这在 HANA 数据库中提供了性能优化、灵活性和数据压缩。

在基于列的表中存储数据具有以下优点:

  •  数据压缩
  • 与传统的基于行的存储相比,对表的读取和写入访问速度更快
  • 灵活性和并行处理
  • 以更高的速度执行聚合和计算

功能差异 - 行存储与列存储


如果 SQL 语句必须执行聚合函数和计算,则始终建议使用基于列的存储。当运行 Sum、Count、Max、Min 等聚合函数时,基于列的表始终表现更好。

当输出必须返回完整行时,首选基于行的存储。以下示例使您更容易理解。

在使用 Where 子句在 sales 列中运行聚合函数 (Sum) 时,它将仅使用 Date 和 Sales 列来运行 SQL 查询,因此,如果它是基于列的存储表,则由于只需要来自两列的数据,因此将优化性能,速度更快。

在运行简单的 Select 查询时,必须在输出中打印整行,因此建议在此场景中将表存储为基于行的表。


更新于: 2020年6月18日

2K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.