BUILD INDEX

Lindorm 2.2.16版本后,通过BUILD INDEX语句可以单独构建二级索引。

引擎与版本

BUILD INDEX语法仅适用于版本在2.2.16之后2.6.3及之前的宽表引擎。

说明

关于宽表引擎对BUILD INDEX语法的版本限制说明如下:

  • 版本为2.2.16之后、2.6.3及之前:在提交异步构建索引后,必须执行BUILD INDEX来单独构建二级索引。

  • 2.6.3以上版本:宽表引擎优化了内部索引构建规则,提交异步构建索引任务后,您无需再执行BUILD INDEX操作。

语法

build_index_statement ::=  BUILD INDEX [ index_identifier ]
                                ON table_identifier

使用说明

宽表引擎对构建索引任务的数量有限制,具体如下:

  • 宽表引擎允许的最大并发任务数为2

  • 一张表同一时间最多只能执行一个构建任务。

即在同一时间,宽表引擎仅允许两张不同的表各存在一个索引构建任务。

说明

如果一张表同时存在两个及以上的构建任务,则在第一个构建任务完成之前,其他的构建任务都会失败(即INDEX_STATE状态显示BUILDINGINDEX_PROGRESS状态显示N/A)。此时必须在第一个任务构建完成(即INDEX_STATE显示ACTIVEINDEX_PROGRESS显示100%)后,再次使用BUILD INDEX语句手动触发其他构建任务。

同理,如果已有两张表各存在一个构建任务,那么在这两个任务完成之前,后续提交的构建任务都会失败。

索引名(index_identifier

需要构建的索引名称。您可以通过SHOW INDEX语句查看表中的所有索引。

表名(table_identifier

目标索引所属的宽表。

示例

BUILD INDEX idx1 ON test;

结果验证

您可以执行SHOW INDEX FROM test;查看索引是否已构建完成。