ALTER TABLE
ステートメントは、mysqlが新しい列を含むテーブルのすべての行を書き直す必要があることを意味します。 200万を超える行があるので、かなりの時間がかかると思います。その間、サーバーはほとんど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;
このようにして、空のテーブルに列を追加し、基本的にその新しいテーブルにデータを書き込みます。このデータは、多くのリソースをロックせずに他の人が見ることはないと確信しています。