伊谢尔伦2017-04-17 16:46:52
大規模な MySQL テーブルにフィールドを追加する考え方は次のとおりです:
一時的な新しいテーブルを作成し、最初に古いテーブルの構造 (インデックスを含む) をコピーします
old_table のようなテーブル new_table を作成します;
新しいフィールドを新しいテーブルに追加します
古いテーブルからデータをコピーします
新しいテーブルに挿入(filed1,filed2…) select filed1,filed2,… from old_table
古いテーブルを削除し、新しいテーブルの名前を古いテーブルの名前に変更します
3番目のステップを実行する場合、このプロセスにも時間がかかる可能性があることに注意してください。このとき、新しいデータが入ってくるため、元のテーブルにデータの書き込み時間を記録するフィールドがあると最適です。データに対してこの手順を実行し、データの差が非常に小さくなるまで新しいテーブルへのインポートを繰り返します。ただし、非常に少量のデータが失われる可能性があります。
したがって、テーブル内のデータが特に大きく、データの整合性を確保する必要がある場合は、操作をシャットダウンするのが最善です。