Tous les produits
Search
Centre de documentation

PolarDB:Ajout instantané de colonne en fin de table

Dernière mise à jour :Aug 11, 2026

Ajoutez une colonne à une table de n'importe quelle taille en quelques secondes, quel que soit le volume de données.

PolarDB for MySQL utilise l'algorithme INSTANT pour cette opération DDL. Seules les métadonnées du dictionnaire de données sont modifiées. Aucune donnée historique n'est copiée ni altérée, et la table n'est jamais reconstruite.

Versions prises en charge

Version Révision minimale Notes
PolarDB for MySQL 8.0 Toutes Fonctionnalité activée par défaut. Aucune configuration requise.
PolarDB for MySQL 5.7 5.7.1.0.6 Activez le paramètre loose_innodb_support_instant_add_column avant utilisation.
PolarDB for MySQL 5.6 5.6.1.0.43 Disponible en version canary. Demandez l'accès via le Quota Center en utilisant le quota polardb_mysql_iac_56.

Pour vérifier le numéro de révision de votre cluster, consultez la rubrique Vérification du numéro de version.

Limites

Limite Détails
Position de la colonne La nouvelle colonne doit obligatoirement être la dernière de la table.
Colonnes virtuelles Prise en charge sur la version 8.0. Non disponible sur les versions 5.6 et 5.7.
Tables partitionnées Non prise en charge sur la version 5.6. Compatible avec les versions 5.7 et 8.0. Pour la version 5.7, cette fonctionnalité est en phase canary ; demandez l'accès via le Quota Center avec le quota polarM_57_iac_on_partition_table.
Index de texte intégral Les tables contenant des index de texte intégral ne sont pas compatibles.
Tables compressées L'ajout instantané ne fonctionne pas sur les tables définies avec ROW_FORMAT=COMPRESSED.
Tables avec index IMCI (In-Memory Column Index) Pour les versions 8.0.1.1.42 et antérieures, ou 8.0.2.2.23 et antérieures : définissez imci_enable_add_column_instant_ddl sur ON. Une fois activé, l'ajout instantané déclenche une reconstruction silencieuse de l'IMCI en arrière-plan, rendant ce dernier indisponible pendant l'opération. Pour les versions 8.0.1.1.42 et ultérieures, ou 8.0.2.2.23 et ultérieures : définissez imci_enable_add_column_instant_ddl sur OFF.
Tables avec clés primaires implicites Si implicit_primary_key est activé, vous devez définir une clé primaire personnalisée.
Instructions DDL combinées Impossible de combiner l'ajout instantané de colonne avec d'autres opérations DDL (comme la création d'un index) dans une même instruction ALTER TABLE.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster PolarDB for MySQL exécutant une version prise en charge

  • Pour PolarDB for MySQL 5.6 : un accès autorisé via le Quota Center

  • Pour PolarDB for MySQL 5.7 : le paramètre loose_innodb_support_instant_add_column défini sur ON

Activer l'ajout instantané de colonne (versions 5.6 et 5.7 uniquement)

Les clusters PolarDB for MySQL 8.0 prennent en charge nativement l'ajout instantané de colonne. Pour les clusters 5.6 et 5.7, configurez le paramètre suivant :

Paramètre Niveau Description
loose_innodb_support_instant_add_column Global Active ou désactive l'ajout instantané de colonne. Valeurs valides : ON (activé) et OFF (valeur par défaut, désactivé).

Pour plus d'informations sur la configuration des paramètres, consultez Activer un paramètre.

Ajouter une colonne instantanément

Forcer l'algorithme INSTANT

Spécifiez ALGORITHM=INSTANT pour garantir l'utilisation de l'algorithme INSTANT :

ALTER TABLE <table_name> ADD COLUMN <column_name> int, ALGORITHM=INSTANT;

Si le cluster ou la table ne prend pas en charge l'ajout instantané de colonne, l'instruction renvoie l'erreur suivante :

ERROR 0A000: ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=COPY/INPLACE.

En cas d'apparition de cette erreur, vérifiez que le paramètre loose_innodb_support_instant_add_column est bien activé et passez en revue les Limites.

Laisser PolarDB choisir automatiquement l'algorithme

Omettez la clause ALGORITHM ou spécifiez ALGORITHM=DEFAULT pour permettre à PolarDB de sélectionner l'algorithme le plus rapide disponible. L'évaluation s'effectue selon l'ordre de priorité suivant : INSTANT > INPLACE > COPY.

ALTER TABLE <table_name> ADD COLUMN <column_name> int, ALGORITHM=DEFAULT;
ALTER TABLE <table_name> ADD COLUMN <column_name> int;

Vérifier l'utilisation de l'algorithme INSTANT

PolarDB for MySQL 5.6 et 5.7

Interrogez la table INNODB_SYS_INSTANT_COLUMNS dans INFORMATION_SCHEMA. Celle-ci contient les noms des colonnes, leurs positions ordinales ainsi que leurs valeurs par défaut (au format binaire) pour toutes les colonnes ajoutées via l'algorithme INSTANT :

SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INSTANT_COLUMNS;
Remarque

L'exécution ultérieure d'une opération DDL nécessitant la reconstruction de la table (telle que OPTIMIZE TABLE) entraîne une reconstruction physique complète par PolarDB. Les colonnes INSTANT deviennent alors des colonnes standard tout en conservant intégralement leurs données. Les entrées correspondantes sont simultanément supprimées de INNODB_SYS_INSTANT_COLUMNS.

PolarDB for MySQL 8.0

Interrogez INFORMATION_SCHEMA.INNODB_COLUMNS et examinez la colonne has_default. Une valeur égale à 1 confirme que la colonne a été ajoutée au moyen de l'algorithme INSTANT :

SELECT * FROM INFORMATION_SCHEMA.INNODB_COLUMNS
WHERE TABLE_ID = (
  SELECT TABLE_ID FROM INFORMATION_SCHEMA.INNODB_TABLES
  WHERE NAME = "<database_name>/<table_name>"
);

Étapes suivantes

Nous contacter

Si vous avez des questions sur les opérations DDL, veuillez contacter le support technique.