一 哈希索引的作用
南大通用GBase 8a数据库通过索引对象,可以快速查询到数据库对象表中的特定记录,是一种提高性能的常用方式。一个索引会包含表中按照一定顺序排序的一列或多列字段。数据库对象索引其实与书的目录非常类似,主要是为了提高从表中检索数据的速度。
创建哈希索引后,基于索引列的等值查询的性能会提高,尤其是表中的数据量非常大的情况,在小数据量的情况下,哈希索引对性能的提升效果不明显。
二 哈希索引的使用限制
同一表上不能创建相同名称的哈希索引,同一表的同一列上能且只能创建一个哈希索引,任何 GBase 8a MPP Cluster 支持的数据类型的列上都可以创建哈希索引。
二进制类型的列不适合使用 HASH INDEX,或者该列数据量较大,但 DISTINCT 值较少时,也不适合使用 HASH INDEX。
三 哈希索引的语法与示例
创建索引语法格式
CREATE INDEX index_name ON [vc_name.][database_name.]table_name(co lumn_name) [key_block_size = size_value] [key_dc_size=num] USING HASH GLOBAL;
key_dc_size=num 多少个数据包(DataCell)创建一个 hash 索引。指定该参数 时,表示创建的是分段哈希索引。
key_block_size = size_value 指定每个数据块的大小。Size_value 最小值 4096,最大值 32768,size_value 必须是 4096 的整数倍。
删除索引语法格式
DROP INDEX index_name ON [vc_name.][database_name.]table_name;