Din ALTER TABLE
sætning indebærer, at mysql bliver nødt til at omskrive hver eneste række i tabellen inklusive den nye kolonne. Da du har mere end 2 millioner rækker, ville jeg bestemt forvente, at det tager en betydelig mængde tid, hvor din server sandsynligvis for det meste vil være IO-bundet. Du vil normalt opleve, at det er mere effektivt at gøre følgende:
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;
På denne måde tilføjer du kolonnen på den tomme tabel og skriver grundlæggende dataene i den nye tabel, som du er sikker på, at ingen andre vil se på uden at låse så mange ressourcer.