それが生産の場合:
の pt-online-schema-changeを使用する必要がありPercona Toolkit
ます。
pt-online-schema-change は、MySQL がテーブルを内部的に変更する方法をエミュレートしますが、変更したいテーブルのコピーに対して機能します。これは、元のテーブルがロックされていないことを意味し、クライアントはテーブル内のデータの読み取りと変更を続行できます。
pt-online-schema-change は、変更するテーブルの空のコピーを作成し、必要に応じて変更してから、元のテーブルから新しいテーブルに行をコピーすることによって機能します。コピーが完了すると、元のテーブルが移動され、新しいテーブルに置き換えられます。デフォルトでは、元のテーブルも削除されます。
または、oak-online-alter-tableの一部であるopenark kit
oak-online-alter-table を使用すると、ノンブロッキング ALTER TABLE 操作、テーブルの再構築、およびテーブルのゴーストの作成が可能になります。
テーブルの変更は遅くなりますが、テーブルはロックされません。
本番環境ではなく、ダウンタイムが問題ない場合は、次のアプローチを試してください。
CREATE TABLE contacts_tmp LIKE contacts;
ALTER TABLE contacts_tmp ADD COLUMN ADD processed INT UNSIGNED NOT NULL;
INSERT INTO contacts_tmp (contact_table_fields) SELECT * FROM contacts;
RENAME TABLE contacts_tmp TO contacts, contacts TO contacts_old;
DROP TABLE contacts_old;