Tous les produits
Search
Centre de documentation

PolarDB:Précautions d'utilisation des index secondaires globaux

Dernière mise à jour :Aug 11, 2026

Les index secondaires globaux (GSI) imposent des contraintes spécifiques lors de leur création, de la modification des tables qui les contiennent et de l'exécution d'opérations DDL et DML. Bien comprendre ces limites en amont permet d'éviter les erreurs de conception de schéma et les échecs inattendus à l'exécution.

Contraintes de création des GSI

  • ApsaraDB RDS for MySQL 5.6 ne prend pas en charge les GSI.

  • Vous ne pouvez pas créer de GSI sur des tables uniques ou des tables broadcast.

  • Vous ne pouvez pas créer de GSI sur des tables sans clé primaire.

  • Les index de préfixe sont interdits dans un GSI UNIQUE.

  • Spécifiez un nom d'index lors de la création d'une table d'index.

  • Lors de la création d'une table d'index, définissez soit uniquement les règles de sharding de base de données, soit les règles de sharding de base de données et de table conjointement. Vous ne pouvez pas spécifier uniquement les règles de sharding de table ni omettre toute règle de sharding.

  • La colonne INDEX d'une table d'index doit inclure toutes les clés de shard.

  • Le nom d'un GSI ne doit pas être identique à celui d'un index local de la table principale.

  • Dans la définition d'un GSI, les colonnes d'index et les colonnes de couverture doivent être distinctes.

  • Par défaut, une table d'index intègre toutes les clés primaires et les clés de shard de la table principale. Toute clé primaire ou clé de shard non explicitement listée comme colonne d'index est automatiquement ajoutée aux colonnes de couverture.

  • Pour chaque index local de la table principale, si toutes les colonnes référencées existent dans la table d'index, cet index local y est automatiquement ajouté.

  • En l'absence d'index existant couvrant une colonne d'index d'un GSI, un index distinct est créé par défaut pour cette colonne.

  • Un GSI comportant plusieurs colonnes d'index entraîne la création par défaut d'un index local composite couvrant l'ensemble de ces colonnes.

  • Le paramètre de longueur sur une colonne d'index s'applique exclusivement lors de la création d'index locaux sur les clés de shard de la table d'index.

  • Lorsque vous créez un GSI sur une table existante, PolarDB vérifie automatiquement la cohérence des données à la fin du processus de création. L'instruction DDL ne réussit qu'après validation des données.

Pour vérifier ou modifier manuellement les données d'un GSI, utilisez l'instruction CHECK GLOBAL INDEX.

Contraintes liées à ALTER TABLE

Opérations sur les colonnes

Le tableau suivant indique les opérations ALTER TABLE sur les colonnes prises en charge pour les tables contenant des GSI.

Instruction Clés de shard de la table principale Clés primaires de la table principale (également clés primaires de la table d'index) Colonne d'index unique local Clés de shard de la table d'index Colonne d'index unique Colonne d'index Colonne de couverture
ADD COLUMN Scénario inexistant Non pris en charge Scénario inexistant Scénario inexistant Scénario inexistant Scénario inexistant Scénario inexistant
ALTER COLUMN SET DEFAULT / ALTER COLUMN DROP DEFAULT Non pris en charge Non pris en charge Pris en charge Non pris en charge Non pris en charge Non pris en charge Non pris en charge
CHANGE COLUMN Non pris en charge Non pris en charge Pris en charge Non pris en charge Non pris en charge Non pris en charge Non pris en charge
DROP COLUMN Non pris en charge Non pris en charge Pris en charge (uniquement si la clé unique comporte exactement une colonne) Non pris en charge Non pris en charge Non pris en charge Non pris en charge
MODIFY COLUMN Non pris en charge Non pris en charge Pris en charge Non pris en charge Non pris en charge Non pris en charge Non pris en charge
Les classifications de colonnes peuvent se chevaucher. Par exemple, la colonne d'index inclut les clés de shard de la table d'index, tandis que la colonne de couverture englobe les clés de shard de la table principale, les clés primaires et les colonnes explicitement spécifiées. Lorsqu'une colonne appartient simultanément à une catégorie « Non pris en charge » et à une catégorie « Pris en charge », la mention « Non pris en charge » prévaut.

Pour retirer des colonnes d'un GSI, utilisez l'instruction DROP INDEX afin de supprimer le GSI puis de le recréer sans les colonnes indésirables. La suppression directe de colonnes via DROP COLUMN n'est pas prise en charge, ceci afin de préserver la stabilité et les performances du GSI.

Opérations sur les index

Le tableau ci-dessous détaille les opérations ALTER TABLE sur les index prises en charge.

Instruction Prise en charge
ALTER TABLE ADD PRIMARY KEY Oui
ALTER TABLE ADD [UNIQUE | FULLTEXT | SPATIAL | FOREIGN] KEY Oui. Vous pouvez ajouter des index locaux simultanément à la table principale et à la table d'index. Le nom de l'index doit différer de celui du GSI.
ALTER TABLE ALTER INDEX *index_name* {VISIBLE | INVISIBLE} Oui, mais uniquement sur la table principale. Vous ne pouvez pas modifier l'état de visibilité du GSI.
ALTER TABLE {DISABLE | ENABLE} KEYS Oui, mais uniquement sur la table principale. Vous ne pouvez pas modifier l'état du GSI.
ALTER TABLE DROP PRIMARY KEY Non
ALTER TABLE DROP INDEX Pris en charge uniquement pour les index classiques et les GSI.
ALTER TABLE RENAME INDEX Non. Pour renommer un GSI, supprimez-le avec DROP INDEX puis recréez-le avec le nouveau nom.

Contraintes des tables d'index

  • Vous ne pouvez pas exécuter d'instructions DDL ou DML sur les tables d'index.

  • Les instructions DML contenant NODE HINT ne permettent pas de mettre à jour les tables principales ou les tables d'index.

Contraintes relatives aux autres instructions DDL

Instruction Prise en charge
DROP TABLE Oui
DROP INDEX Oui
TRUNCATE TABLE Non. Pour vider les données de la table principale et de ses tables d'index tout en maintenant leur cohérence, utilisez plutôt l'instruction DELETE.
RENAME TABLE Non. Pour renommer une table possédant un GSI, supprimez d'abord le GSI avec DROP INDEX, renommez la table, puis recréez le GSI.
ALTER TABLE RENAME Non. Appliquez la même procédure de contournement que pour RENAME TABLE ci-dessus.

Contraintes relatives aux instructions DML

Vous ne pouvez pas exécuter d'instructions DML sur les tables d'index. Pour connaître les contraintes applicables aux opérations DML sur les tables principales, consultez la rubrique Limites des index secondaires globaux sur les opérations DML.