文档

CREATE INDEX

更新时间:

本文介绍创建时空索引的语法。

语法

create_index_statement ::=  CREATE INDEX [ index_name ]
                                ON table_name '(' index_identifier ')'
                              [INCLUDE include_identifier]
                              [ASYNC]
                                 [ index_options ]
index_identifier       ::=  column_name [desc] [',' index_identifier ]
                            | [z-order] '(' [ column_name ( ',' column_name )* ] ')'
                            [',' index_identifier ]
include_identifier   ::= '('column_name1,...,column_namen ')'

支持的Index_Options列表

名称

类型

描述

COMPRESSION

String

索引表的压缩算法,支持的压缩算法包括:

  • SNAPPY

  • ZSTD

  • LZ4

INDEX_COVERED_TYPE

String

表示索引的冗余方式,支持如下方式:

  • COVERED_ALL_COLUMNS_IN_SCHEMA表示冗余所有列。

  • COVERED_DYNAMIC_COLUMNS表示冗余动态列。

  • 如果没有该选项,可以使用Include表示冗余Includes的列。

STARTKEY

String

表示索引表的起始Key。

ENDKEY

String

表示索引表的终止Key。

NUMREGIONS

String

表示索引表的预分区数。

说明
  • 索引表支持冗余列,冗余列可以帮助加速查询,避免回查主表。如果只是冗余某几个列可以使用Include。Include(c1,c2)表示冗余c1和c2列。

  • 默认表的索引构建方式是同步的,但是如果添加Async表示异步构建,需要执行BUILD INDEX命令。

  • 索引表数目不超过5个,数目过多会增加成本和写入RT。

示例

创建时空二级索引示例如下,有关时空索引请参见时空索引介绍

CREATE INDEX idx ON roads (Z-ORDER(g1));
CREATE INDEX idt ON roads (Z-ORDER(g1,t));
  • 本页导读 (1)