Tous les produits
Search
Centre de documentation

Lindorm:ALTER INDEX

Dernière mise à jour :Aug 20, 2026

L'instruction ALTER INDEX modifie les colonnes d'un index de recherche ou change l'état d'un index secondaire ou de recherche. Lors de l'importation ou de la mise à jour de volumes importants de données, désactivez l'index avec ALTER INDEX pour améliorer les performances.

Syntaxe

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 }
Important
  • Si vous modifiez un index secondaire, ALTER INDEX permet uniquement de modifier l'état de l'index.

  • Vous ne pouvez spécifier des propriétés pour les nouvelles colonnes que lors de la modification d'un index de recherche.

Compatibilité

LindormTable prend en charge deux types d'index : index secondaire, index de recherche . Le tableau suivant décrit la compatibilité de chaque type d'index avec les clauses de l'instruction ALTER INDEX.

Élément de syntaxe

Index secondaire

Index de recherche

Ajouter des colonnes

✖️

alter_state_expression

Utilisation

Ajouter des colonnes

Vous ne pouvez pas ajouter de colonnes à un index secondaire.

Vous pouvez ajouter une ou plusieurs colonnes et spécifier des propriétés de clé d'index pour les nouvelles colonnes. Par exemple, ADD COLUMNS(c1,c3,p1(type=text,analyzer=ik)) ajoute trois colonnes d'index, c1, c3 et p1, et spécifie que la colonne p1 utilise l'analyseur ik. Pour plus d'informations sur les propriétés de clé d'index disponibles, consultez la section Propriétés de clé d'index de recherche (option_definition).

alter_state_expression

Définissez l'état de l'index sur l'une des valeurs suivantes :

Paramètre

Description

ACTIVE

L'index est disponible et peut être utilisé dans les requêtes.

INACTIVE

L'index n'est pas disponible et est ignoré par l'optimiseur de requêtes, mais continue de recevoir les mises à jour de données depuis la table de base.

DISABLED

L'index est désactivé, ignoré par l'optimiseur de requêtes et ne reçoit plus les mises à jour de données depuis la table de base.

Important

Le passage direct de l'état d'un index secondaire de DISABLED à ACTIVE peut entraîner une perte de données. Vous devez reconstruire l'index avant de le réactiver.

Exemples

Les instructions suivantes créent la table de base et les index utilisés dans les exemples :

-- 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);

Désactiver un index

Désactivez l'index idx1.

ALTER INDEX idx1 ON test DISABLED;

Vérifier le résultat

Exécutez l'instruction SHOW INDEX FROM test; pour consulter le résultat.

Activer un index

ALTER INDEX IF EXISTS idx1 ON test ACTIVE;

Vérifier le résultat

Exécutez l'instruction SHOW INDEX FROM test; pour consulter l'état de l'index.

Ajouter des colonnes à un index de recherche

Ajoutez les colonnes c1 et c3 à l'index de recherche idx2, et spécifiez les propriétés de clé d'index pour la colonne c3.

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

Les données historiques ne sont pas automatiquement synchronisées vers les colonnes d'index nouvellement ajoutées. Vous devez reconstruire l'index pour inclure ces données historiques. Pour plus d'informations, consultez la section Reconstruire l'index de recherche.

Vérifier le résultat

Exécutez l'instruction SHOW INDEX FROM test; pour consulter la colonne d'index.

Reconstruire un index de recherche

Cette action synchronise toutes les données de la table de base vers l'index de recherche.

  • Construction synchrone d'un index de recherche : L'instruction ALTER INDEX ne renvoie le contrôle qu'une fois la construction de l'index terminée.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD;
  • Construction asynchrone d'un index de recherche : L'instruction ALTER INDEX renvoie immédiatement le contrôle, que l'index ait été construit avec succès ou non.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD ASYNC;