Vaše ALTER TABLE
prohlášení znamená, že mysql bude muset přepsat každý jednotlivý řádek tabulky včetně nového sloupce. Vzhledem k tomu, že máte více než 2 miliony řádků, rozhodně bych očekával, že to zabere značné množství času, během kterého bude váš server pravděpodobně většinou vázán na IO. Obvykle byste zjistili, že je výkonnější provést následující:
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;
Tímto způsobem přidáte sloupec do prázdné tabulky a v podstatě zapíšete data do nové tabulky, o kterých jste si jisti, že se na ně nikdo jiný nebude dívat, aniž byste zamkli co nejvíce zdrojů.