BUILD INDEX déclenche la création d'un index secondaire après l'envoi d'une tâche de génération d'index asynchrone. Cette commande s'applique uniquement aux versions de LindormTable supérieures à 2.2.16 et inférieures ou égales à 2.6.3.
Compatibilité des versions
Le comportement de BUILD INDEX varie selon les versions de LindormTable :
| Version de LindormTable | Comportement |
|---|---|
| > 2.2.16 et ≤ 2.6.3 | Après avoir soumis une tâche de génération d'index asynchrone, exécutez BUILD INDEX séparément pour lancer la construction. |
| > 2.6.3 | BUILD INDEX n'est pas requis. La création de l'index est gérée automatiquement après l'envoi de la requête de génération asynchrone. |
Syntaxe
BUILD INDEX [ index_identifier ]
ON table_identifier
| Paramètre | Description |
|---|---|
index_identifier |
Nom de l'index à construire. Exécutez SHOW INDEX pour lister tous les index d'une table. |
table_identifier |
Nom de la table sur laquelle construire l'index. |
Notes d'utilisation
Limites de simultanéité
LindormTable applique les limites suivantes aux tâches de génération d'index simultanées :
Un maximum de 2 tâches de génération d'index peut s'exécuter simultanément sur l'ensemble des tables.
Une seule tâche de génération d'index peut s'exécuter par table à la fois.
Deux tâches ne peuvent donc s'exécuter simultanément que si chacune cible une table différente.
Si vous soumettez deux tâches ou plus pour la même table, seule la première aboutit. Les tâches supplémentaires échouent immédiatement. Pour exécuter une autre tâche sur cette table, attendez que la première affiche INDEX_STATE = ACTIVE et INDEX_PROGRESS = 100%, puis soumettez une nouvelle instruction BUILD INDEX.
De même, si deux tâches sont déjà en cours d'exécution sur deux tables différentes, toute tâche supplémentaire échoue jusqu'à la fin de ces deux tâches.
État de la génération de l'index
Utilisez SHOW INDEX pour surveiller la progression de la génération. Les champs suivants indiquent l'état actuel :
| Champ | Valeur | Signification |
|---|---|---|
INDEX_STATE |
BUILDING |
Le démarrage de la tâche a échoué en raison d'un conflit de simultanéité. |
INDEX_STATE |
ACTIVE |
L'index a été généré avec succès et est prêt à l'emploi. |
INDEX_PROGRESS |
N/A |
La tâche a échoué car la limite de simultanéité a été dépassée. |
INDEX_PROGRESS |
100% |
La génération s'est terminée avec succès. |
Exemple
Générez un index secondaire nommé idx1 sur la table test :
BUILD INDEX idx1 ON test;
Vérifiez le résultat
Exécutez l'instruction suivante pour confirmer que l'index a bien été généré :
SHOW INDEX FROM test;
L'index est prêt lorsque INDEX_STATE est défini sur ACTIVE et que INDEX_PROGRESS est égal à 100%.