Todos os produtos
Search
Central de documentação

Lindorm:ALTER INDEX

Última atualização: Jul 02, 2026

A instrução ALTER INDEX modifica colunas em um índice de busca ou altera o status de um índice secundário ou de busca. Ao importar ou atualizar grandes volumes de dados, desative o índice com ALTER INDEX para melhorar o desempenho.

Sintaxe

alter_index_statement  ::=  ALTER INDEX [IF EXISTS] index_identifier
                            ON table_identifier
                            {
                              ADD 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 | DISABLED }
Importante
  • Para índices secundários, a instrução ALTER INDEX permite alterar apenas o status do índice.

  • Especifique propriedades para novas colunas somente ao modificar um índice de busca.

Compatibilidade

O LindormTable oferece suporte a dois tipos de índices: índice secundário, índice de busca . A tabela a seguir descreve a compatibilidade de cada tipo de índice com as cláusulas da instrução ALTER INDEX.

Elemento de sintaxe

Índice secundário

Índice de busca

Adicionar colunas

✖️

Remover colunas

✖️

alter_state_expression

Uso

Adicionar colunas

Não é possível adicionar colunas a um índice secundário.

Adicione uma ou mais colunas e especifique propriedades de chave de índice para as novas colunas. Por exemplo, ADD COLUMNS(c1,c3,p1(type=text,analyzer=ik)) adiciona três colunas de índice (c1, c3 e p1) e especifica que a coluna p1 usa o analisador ik. Para obter mais informações sobre as propriedades de chave de índice disponíveis, consulte Propriedades de chave de índice de busca (option_definition).

Remover colunas

Remova colunas apenas de um índice de busca.

Use a instrução DROP COLUMNS(column1, column2, ..., columnN) para remover uma ou mais colunas de índice. Exemplo: DROP COLUMNS(c3).

alter_state_expression

Defina o status do índice como um dos seguintes estados:

Parâmetro

Descrição

ACTIVE

O índice está disponível e pode ser usado em consultas.

INACTIVE

O índice fica indisponível e o otimizador de consultas o ignora, mas ele continua recebendo atualizações de dados da tabela base.

DISABLED

O índice é desativado, o otimizador de consultas o ignora e ele deixa de receber atualizações de dados da tabela base.

Importante

Alterar o status de um índice secundário diretamente de DISABLED para ACTIVE pode causar perda de dados. Reconstrua o índice antes de reativá-lo.

Exemplos

As instruções a seguir criam a tabela base e os índices usados nos exemplos:

-- Create a base table.
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');

-- Create a secondary index named idx1.
CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');

-- Create a search index named idx2.
CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c2);

Desativar um índice

Desative o índice idx1.

ALTER INDEX idx1 ON test DISABLED;

Verifique o resultado

Execute a instrução SHOW INDEX FROM test; para visualizar o resultado.

Ativar um índice

ALTER INDEX IF EXISTS idx1 ON test ACTIVE;

Verifique o resultado

Execute a instrução SHOW INDEX FROM test; para visualizar o status do índice.

Adicionar colunas a um índice de busca

Adicione as colunas c1 e c3 ao índice de busca idx2 e especifique propriedades de chave de índice para a coluna c3.

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

Os dados históricos não são sincronizados automaticamente com as colunas de índice recém-adicionadas. Reconstrua o índice para incluir esses dados históricos. Para obter mais informações, consulte Reconstruir o índice de busca.

Verifique o resultado

Execute a instrução SHOW INDEX FROM test; para visualizar a coluna de índice.

Modifique propriedades de chave de índice

ALTER INDEX IF EXISTS idx2 ON test(c3(analyzer=standard));

Remover colunas de um índice de busca

ALTER INDEX IF EXISTS idx2 ON test DROP COLUMNS(c3);

Verifique o resultado

Execute a instrução SHOW INDEX FROM test; para visualizar a coluna de índice.

Reconstruir um índice de busca

Esta ação sincroniza todos os dados da tabela base com o índice de busca.

  • Construção síncrona de índice de busca: a instrução ALTER INDEX retorna apenas após a conclusão da construção do índice.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD;
  • Construção assíncrona de índice de busca: a instrução ALTER INDEX retorna imediatamente, independentemente do sucesso na construção do índice.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD ASYNC;