Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL 5.6 - tabela blokuje się nawet przy użyciu ALGORITHM=inplace

Zakładam, że nie robiłeś innego DDL na tym stole mniej więcej w tym samym czasie?

Na przyszłość:

8.0.12 ma ALTER TABLE .. ALGORITHM=INSTANT dla ADD COLUMN . Zobacz Dyskusja i ALTER Reference oraz Informacje o DDL online

Następujące ograniczenia mają zastosowanie, gdy algorytm INSTANT jest używany do dodawania kolumny:

  • Dodawania kolumny nie można połączyć w tej samej instrukcji z innymi działaniami ALTER TABLE, które nie obsługują ALGORITHM=INSTANT.
  • Kolumnę można dodać tylko jako ostatnią kolumnę tabeli. Dodawanie kolumny do jakiejkolwiek innej pozycji wśród innych kolumn nie jest obsługiwane.
  • Kolumn nie można dodawać do tabel, które używają ROW_FORMAT=COMPRESSED.
  • Kolumn nie można dodawać do tabel, które zawierają indeks FULLTEXT.
  • Kolumn nie można dodawać do tabel tymczasowych. Tabele tymczasowe obsługują tylko ALGORITHM=COPY.
  • Kolumn nie można dodawać do tabel znajdujących się w przestrzeni tabel słownika danych.
  • Limity rozmiaru wiersza nie są oceniane podczas dodawania kolumny. Jednak limity rozmiaru wierszy są sprawdzane podczas operacji DML, które wstawiają i aktualizują wiersze w tabeli.

W tej samej instrukcji ALTER TABLE można dodać wiele kolumn.

Jeśli nie możesz uaktualnić, rozważ pt-online-schema-change firmy Percona lub nowy, konkurencyjny produkt gh-ost (który używa binloga).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje odpowiednik sprintf w MySQL?

  2. Wyświetl dane MYSQL z menu

  3. Jaka baza danych dla dużych baz danych?

  4. Odmowa dostępu dla „użytkownik”@„localhost”

  5. mysql cross join, ale bez zduplikowanej pary?