Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL 5.6 - la table se verrouille même lorsque ALGORITHM=inplace est utilisé

Je suppose que vous ne faisiez pas d'autre DDL sur cette table à peu près au même moment ?

Pour le futur :

8.0.12 a ALTER TABLE .. ALGORITHM=INSTANT pour ADD COLUMN . Voir Discussion et ALTER Reference et Référence DDL en ligne

Les limitations suivantes s'appliquent lorsque l'algorithme INSTANT est utilisé pour ajouter une colonne :

  • L'ajout d'une colonne ne peut pas être combiné dans la même instruction avec d'autres actions ALTER TABLE qui ne prennent pas en charge ALGORITHM=INSTANT.
  • Une colonne ne peut être ajoutée qu'en tant que dernière colonne du tableau. L'ajout d'une colonne à une autre position parmi d'autres colonnes n'est pas pris en charge.
  • Les colonnes ne peuvent pas être ajoutées aux tableaux qui utilisent ROW_FORMAT=COMPRESSED.
  • Les colonnes ne peuvent pas être ajoutées aux tableaux qui incluent un index FULLTEXT.
  • Les colonnes ne peuvent pas être ajoutées aux tables temporaires. Les tables temporaires ne prennent en charge que ALGORITHM=COPY.
  • Les colonnes ne peuvent pas être ajoutées aux tables qui résident dans l'espace de table du dictionnaire de données.
  • Les limites de taille de ligne ne sont pas évaluées lors de l'ajout d'une colonne. Cependant, les limites de taille de ligne sont vérifiées lors des opérations DML qui insèrent et mettent à jour des lignes dans le tableau.

Plusieurs colonnes peuvent être ajoutées dans la même instruction ALTER TABLE.

Si vous ne pouvez pas mettre à niveau, envisagez le pt-online-schema-change de Percona ou un nouveau produit concurrent gh-ost (qui utilise le binlog).