CREATE INDEX#

CREATE INDEX 语句用来创建索引。添加索引会发起异步任务来加载数据, 可以通过执行SHOW JOBS FROM NAMESERVER来查看任务状态。请注意,异步任务未完成之前,索引不可用,需要新索引的场景会失败。

语法#

CreateIndexstmt ::=
    'CREATE' 'INDEX' IndexName ON TableName IndexColumn OptOptionsList

IndexName ::= Identifier

TableName ::=
    Identifier ('.' Identifier)?


IndexColumn ::=
    IndexColumnPrefix ")"

IndexColumnPrefix ::=
    "(" ColumnExpression
    | IndexColumnPrefix "," ColumnExpression

ColumnExpression ::=
    Identifier
     
OptOptionsList ::=
    "OPTIONS" OptionList

OptionList ::=
    OptionsListPrefix ")"

OptionsListPrefix ::=
    "(" OptionEntry
    | OptionsListPrefix "," OptionEntry

OptionEntry ::=
    Identifier "=" Identifier

示例#

CREATE INDEX index2 ON t5 (col2);
-- SUCCEED

Note

  1. 如果不指定Options, 创建的索引就没有指定TS列,因此不能用在需要上线的SQL中。

  2. 指定TS列的类型只能是BitInt或者Timestamp

我们可以通过类似如下命令在创建索引时指定TS列:

CREATE INDEX index3 ON t5 (col3) OPTIONS (ts=ts1, ttl_type=absolute, ttl=30d);
-- SUCCEED

关于TTLTTL_TYPE的更多信息参考这里

相关SQL#

DROP INDEX