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;
查看索引是否已構建完成。