SAP HANA 行存储和列存储表
SAP HANA 模型视图只能在基于列的表之上创建。将数据存储在列表中并不是什么新鲜事。以前人们认为,将数据存储在基于列的结构中会占用更多内存,并且性能未经优化。
随着 SAP HANA 的发展,HANA 在信息视图中使用了基于列的数据存储,并展示了列表相对于基于行的表的真正优势。
列存储
在列存储表中,数据垂直存储。因此,类似的数据类型会像上面示例中所示那样组合在一起。它借助内存计算引擎提供更快的内存读写操作。
在传统的数据库中,数据以基于行的结构(即水平方式)存储。SAP HANA 以基于行和基于列的结构存储数据。这在 HANA 数据库中提供了性能优化、灵活性和数据压缩。
在基于列的表中存储数据具有以下优点:
- 数据压缩
- 与传统的基于行的存储相比,对表的读写访问速度更快
- 灵活性和并行处理
- 以更高的速度执行聚合和计算
功能差异 - 行存储与列存储
如果 SQL 语句必须执行聚合函数和计算,则始终建议使用基于列的存储。在运行 Sum、Count、Max、Min 等聚合函数时,基于列的表始终表现更好。
如果输出必须返回完整的行,则首选基于行的存储。以下示例可以更容易地理解这一点。
在使用 Where 子句对 sales 列运行聚合函数 (Sum) 时,它只使用 Date 和 Sales 列运行 SQL 查询,因此,如果它是基于列的存储表,则由于只需要来自两列的数据,所以它将是性能优化的,速度更快。
在运行简单的 Select 查询时,必须在输出中打印完整的行,因此在这种情况下,建议将表存储为基于行的表。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP