MySQL メモ8 AlterTbaleの注意点
MySQL5.5以前を使っている場合は、AlterTableを実行した場合、対象テーブルへのwrite処理はブロックされる。
そのため本番環境がアクティブな状況では、運用に支障が起きる可能性が高かった。
MySQL5.6以降では、OnlineDDL機能が登場し、テーブルの複製が不要となり、テーブルのロックをしないでAlterTableが実行可能となった。(すべてのAlterTableができるわけではない。)
https://dev.mysql.com/doc/refman/5.6/ja/innodb-create-index-overview.html
あくまでも実行可能であるため、パフォーマンスは低下する可能性があるし、一時的なテーブルロックも発生することはあるらしい。
本番環境でAlterTbaleを実行する場合は、メンテナンス中に実行することが安全である。
メンテナンス中に実行する場合でも、AlterTableがどのくらい掛かるのかは事前に調査する必要がある。
メンテナンス中に終わらない可能性ももちろんある。
一番確実なのは、本番環境と同一環境を作成して、本番環境データで一度AlterTableを実行する。その処理時間を参考にするといいと思う。