Вашата ALTER TABLE
изявлението предполага, че mysql ще трябва да пренапише всеки един ред от таблицата, включително новата колона. Тъй като имате повече от 2 милиона реда, определено бих очаквал, че отнема значително време, през което вашият сървър вероятно ще бъде предимно свързан с IO. Обикновено ще откриете, че е по-ефективно да направите следното:
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;
По този начин добавяте колоната към празната таблица и по същество записвате данните в тази нова таблица, за която сте сигурни, че никой друг няма да гледа, без да заключи толкова много ресурси.