sql >> Database >  >> RDS >> Mysql

MySQL 5.6 - tafel wordt vergrendeld, zelfs wanneer ALGORITHM=inplace wordt gebruikt

Ik neem aan dat je niet rond dezelfde tijd een andere DDL aan het doen was op die tafel?

Voor de toekomst:

8.0.12 heeft ALTER TABLE .. ALGORITHM=INSTANT voor ADD COLUMN . Zie Discussie en ALTER Reference en Online DDL-referentie

De volgende beperkingen zijn van toepassing wanneer het INSTANT-algoritme wordt gebruikt om een ​​kolom toe te voegen:

  • Het toevoegen van een kolom kan niet worden gecombineerd in dezelfde instructie met andere ALTER TABLE-acties die ALGORITHM=INSTANT niet ondersteunen.
  • Een kolom kan alleen worden toegevoegd als de laatste kolom van de tabel. Het toevoegen van een kolom aan een andere positie tussen andere kolommen wordt niet ondersteund.
  • Kolommen kunnen niet worden toegevoegd aan tabellen die ROW_FORMAT=COMPRESSED gebruiken.
  • Kolommen kunnen niet worden toegevoegd aan tabellen die een FULLTEXT-index bevatten.
  • Kolommen kunnen niet worden toegevoegd aan tijdelijke tabellen. Tijdelijke tabellen ondersteunen alleen ALGORITHM=COPY.
  • Kolommen kunnen niet worden toegevoegd aan tabellen die zich in de datadictionary-tabelruimte bevinden.
  • Rijgroottelimieten worden niet geëvalueerd bij het toevoegen van een kolom. De limieten voor rijgrootte worden echter gecontroleerd tijdens DML-bewerkingen die rijen in de tabel invoegen en bijwerken.

Er kunnen meerdere kolommen worden toegevoegd aan dezelfde ALTER TABLE-instructie.

Als u niet kunt upgraden, overweeg dan Percona's pt-online-schema-change of een nieuw, concurrerend product gh-ost (die de binlog gebruikt).



  1. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver tijdens runtime (eclipse/maven/tomcat)

  2. Aangepaste mysql sorteren op veldwaarde

  3. Bulk invoegen met SQLAlchemy ORM

  4. Mysql:Bestellen op like?