日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ALTER INDEX

ALTER INDEX用于變更搜索索引列、修改二級索引和搜索索引的索引狀態。如果需要導入或更新大量數據,建議在導入或更新前通過ALTER INDEX禁用索引以保證導入效率,提高更新速度。

語法

alter_index_statement  ::=  ALTER INDEX [IF EXISTS] index_identifier
                            ON table_identifier
                            {
                              ADD COLUMNS '(' alter_key_expression ')'
                              |
                              DROP COLUMNS '(' alter_key_expression ')'
                              |
                              alter_state_expression  
                            }
                            [ASYNC]
alter_key_expression   ::=  index_key_definition [ (',' index_key_definition)* ]
index_key_definition   ::=  {
                                  column_identifier [ DESC ]
                                  | column_identifier'(' column_options ')' 
                            }
alter_state_expression ::=  { ACTIVE | INACTIVE }
重要
  • 如果修改的是二級索引,則ALTER INDEX僅支持修改索引狀態。

  • 只有修改的是搜索索引時,才支持語法中添加索引列時在索引列后面指定列屬性。

差異說明

Lindorm寬表引擎共支持三種索引:二級索引、搜索索引和列存索引。索引對各語法要素的支持情況如下:

語法要素

二級索引

搜索索引

列存索引

增加列(ADD COLUMNS)

??

修改索引狀態(alter_state_expression)

??

使用說明

增加列(ADD COLUMNS)

搜索索引支持增加列。

  • 搜索索引:您可以在增加一個或多個列的同時,為新增的列增加索引鍵屬性,例如ADD COLUMNS(c1,c3,p1(type=text,analyzer=ik))表示新增三個索引列c1、c3和p1,并指定p1列使用ik分詞器。可添加的索引鍵屬性,請參見搜索索引鍵屬性(option_definition)中的搜索索引鍵屬性(option_definition)。

    說明

    歷史數據不會自動同步至新增的索引列,如果希望這些列的歷史數據被索引到,請重新構建索引。如何操作,請參見重新構建搜索索引

  • 列存索引:您可以為列存索引添加普通列或者JSON列的靜態映射規則。詳細說明,請參見為列存表添加列(公測中)

修改索引狀態(alter_state_expression)

支持修改的索引狀態共以下三種:

參數

說明

ACTIVE

索引為可用狀態。

INACTIVE

索引不可用。

DISABLED

禁用索引。修改后,索引狀態為INACTIVE。

示例

假設主表和索引的創建語句如下:

-- 創建主表
CREATE TABLE test (
  p1 VARCHAR NOT NULL,
  p2 INTEGER NOT NULL,
  c1 BIGINT,
  c2 DOUBLE,
  c3 VARCHAR,
  c4 TIMESTAMP,
  PRIMARY KEY(p1, p2)
) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');

-- 創建二級索引idx1
CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');

-- 創建搜索索引idx2
CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c2);

-- 創建列存索引idx3
CREATE INDEX idx3 USING COLUMNAR ON test(p1, p2, c1) 
PARTITION BY ENUMERABLE (p2, bucket(16,p1)) 
WITH (
  `lindorm_columnar.user.index.database` = 'default',
  `lindorm_columnar.user.index.table` = 'test');

禁用索引

禁用索引idx1。?

ALTER INDEX idx1 ON test DISABLED;

結果驗證

您可以執行SHOW INDEX FROM test;語句,查看修改結果。

重新啟用索引

ALTER INDEX IF EXISTS idx1 ON test ACTIVE;

結果驗證

您可以執行SHOW INDEX FROM test;語句,查看索引狀態。

新增搜索索引列

為搜索索引idx2新增c1列和c3列,并為c3列添加索引鍵屬性。

ALTER INDEX IF EXISTS idx2 ON test ADD COLUMNS(c1,c3(type=text,analyzer=ik));
說明

歷史數據不會自動同步至新增的索引列,如果希望這些列的歷史數據被索引到,請重新構建索引。如何操作,請參見重新構建搜索索引

結果驗證

您可以執行SHOW INDEX FROM test;語句,查看索引列。

新增列存索引列

ALTER INDEX IF EXISTS idx3 ON test ADD COLUMNS(c3);

詳細語法介紹,請參見為列存表添加列(公測中)

重新構建搜索索引

重新將全量數據同步到搜索索引中。

ALTER INDEX IF EXISTS idx2 ON test REBUILD;