Kort svar:For MySQL kræves <5.6 låse. Fra og med 5.6 og ved hjælp af InnoDB, låser er ikke nødvendige for mange ALTER TABLE
handlinger, herunder tilføjelse af en kolonne
.
Hvis du bruger MySQL 5.5 eller ældre, får den en læselås for hele operationen og derefter en kort skrivelås til sidst.
Fra MySQL-dokumentationen til ALTER TABLE ...
Hvilket vil sige, når du tilføjer en kolonne, låser den tabellen i det meste af operationen og får derefter en skrivelås til sidst.
MySQL 5.6 tilføjede Online DDL til InnoDB, som fremskynder og forbedrer mange ting, såsom at ændre tabeller og indekser. Tilføjelse af en kolonne til en tabel vil ikke længere kræve tabellåse undtagen muligvis korte eksklusive låse ved starten og slutningen af operationen .
Det skal ske automatisk, men for at være sikker skal du indstille ALGORITHM=inplace
og LOCK=none
til din ALTER TABLE
erklæring.
Der er én undtagelse...