Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL 5.6 - Tabellensperren, selbst wenn ALGORITHM=inplace verwendet wird

Ich nehme an, Sie haben ungefähr zur gleichen Zeit keine andere DDL auf diesem Tisch gemacht?

Für die Zukunft:

8.0.12 hat ALTER TABLE .. ALGORITHM=INSTANT für ADD COLUMN . Siehe Diskussion und ALTER-Referenz und Online-DDL-Referenz

Die folgenden Einschränkungen gelten, wenn der INSTANT-Algorithmus zum Hinzufügen einer Spalte verwendet wird:

  • Das Hinzufügen einer Spalte kann nicht in derselben Anweisung mit anderen ALTER TABLE-Aktionen kombiniert werden, die ALGORITHM=INSTANT nicht unterstützen.
  • Eine Spalte kann nur als letzte Spalte der Tabelle hinzugefügt werden. Das Hinzufügen einer Spalte an einer anderen Position unter anderen Spalten wird nicht unterstützt.
  • Spalten können nicht zu Tabellen hinzugefügt werden, die ROW_FORMAT=COMPRESSED verwenden.
  • Spalten können nicht zu Tabellen hinzugefügt werden, die einen FULLTEXT-Index enthalten.
  • Spalten können nicht zu temporären Tabellen hinzugefügt werden. Temporäre Tabellen unterstützen nur ALGORITHM=COPY.
  • Spalten können nicht zu Tabellen hinzugefügt werden, die sich im Datenwörterbuch-Tablespace befinden.
  • Zeilengrößenbeschränkungen werden beim Hinzufügen einer Spalte nicht ausgewertet. Zeilengrößenbeschränkungen werden jedoch während DML-Vorgängen überprüft, die Zeilen in die Tabelle einfügen und aktualisieren.

In derselben ALTER TABLE-Anweisung können mehrere Spalten hinzugefügt werden.

Wenn Sie kein Upgrade durchführen können, ziehen Sie Perconas pt-online-schema-change in Betracht oder ein neues, konkurrierendes Produkt gh-ost (das das Binlog verwendet).