Uw ALTER TABLE
verklaring houdt in dat mysql elke rij van de tabel opnieuw moet schrijven, inclusief de nieuwe kolom. Aangezien je meer dan 2 miljoen rijen hebt, zou ik zeker verwachten dat het een aanzienlijke hoeveelheid tijd kost, waarin je server waarschijnlijk grotendeels IO-gebonden zal zijn. Normaal gesproken zult u merken dat het effectiever is om het volgende te doen:
CREATE TABLE main_table_new LIKE main_table;
ALTER TABLE main_table_new ADD COLUMN location VARCHAR(256);
INSERT INTO main_table_new SELECT *, NULL FROM main_table;
RENAME TABLE main_table TO main_table_old, main_table_new TO main_table;
DROP TABLE main_table_old;
Op deze manier voegt u de kolom toe aan de lege tabel en schrijft u in feite de gegevens in die nieuwe tabel waarvan u zeker weet dat niemand anders ernaar zal kijken zonder zoveel bronnen te vergrendelen.