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.