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
状态显示BUILDING
,INDEX_PROGRESS
状态显示N/A
)。此时必须在第一个任务构建完成(即INDEX_STATE
显示ACTIVE
,INDEX_PROGRESS
显示100%
)后,再次使用BUILD INDEX
语句手动触发其他构建任务。
同理,如果已有两张表各存在一个构建任务,那么在这两个任务完成之前,后续提交的构建任务都会失败。
索引名(index_identifier)
需要构建的索引名称。您可以通过SHOW INDEX
语句查看表中的所有索引。
表名(table_identifier)
目标索引所属的宽表。
示例
BUILD INDEX idx1 ON test;
结果验证
您可以执行SHOW INDEX FROM test;
查看索引是否已构建完成。