0%

SAP HANA INDEX (HANA数据库中的索引)

由于项目原因,使用SAP HANA数据库也有一段时间了,发现大家对于HANA中的索引有很多误解, 现在将我对于HANA 索引的理解发出来。这些理解都是来自于各个Blog的资料,以及官方白皮书。

全文索引 1

SAP HANA会自动为TEXT和SHORTTEXT(n)类型的列创建全文索引。对于其他列类型,您必须手动创建任何必需的全文本索引。

支持全文索引的数据类型

  • VARCHAR, NVARCHAR types with CS_STRING type

  • VARBINARY type

  • BLOB, CLOB, NCLOB types

引用

常规索引

UNIQUE 唯一索引,在指定列上创建索引,在添加数据时会进行重复检查。

BTREE B+树索引

CPBTREE CPB+树索引,代表压缩前缀的B+树索引,基于PKB索引。CPB+树索引是一个比较小的索引,因为只将KEY中的一部分进行索引,所以对于非常大的KEY,索引效率优于B+树索引。

如果未显示创建索引类型时,HANA将会因为列的数据类型选择适当的索引类型。
数据类型为字符串类型二进制类型十进制类型或约束是组合键或非唯一约束时候,默认创建的索引是CPBTREE,在其他情况下使用BTREE

列式存储表和行式存储表的Index2

在许多情况下,列式存储的表消除了对其他索引结构的需求。
因为内存中列存储的列扫描速度和压缩机制(尤其是字典压缩)已经允许具有很高性能的读取操作。在许多情况下,不需要具有其他索引结构。消除索引可以减少内存大小,可以提高写入性能,并减少开发工作。

在什么情况下创建索引呢3

当您有一个查询,该查询从很大的表(或联接的表组)中选择了很少的数据。在这种情况下,在所有排序列上创建二级索引可以使HANA更快地找到数据

References

[1] 全文索引:官方白皮书

[2] 列式存储表和行式存储表:官方白皮书

[3] SAP HANA新开发人员的6条黄金法则:SAP答疑

[4] SAP HANA索引:答疑

https://sapyard.com/secondary-index-in-traditional-sap-database-and-sap-hana-database/

https://sapyard.com/sap-hana-from-space-level/