テーブル構造の変更を行う mysql 操作のほとんどは、新しい構造のテーブルを作成し、古いテーブルからデータをチェックアウトして新しいテーブルに挿入し、古いテーブルを削除するというもので、alter table の一般的な実行プロセスです。これは通常、非常に時間がかかり、多くのインデックスを持つ大きなテーブルを操作する場合に問題となります。
一般的に、alterテーブルはmysqlサービスの中断を引き起こします:
1.サービスを提供していないマシンでalter tableを実行し、マスターライブラリを切り替えます;
2. "シャドウコピー"、新しいテーブル構造を使用して、ソーステーブルとは無関係の新しいテーブルを作成し、テーブル操作の名前変更と削除によって2つのテーブルを交換します;
注意: すべての変更テーブルが新しいテーブルを再構築するわけではありません。
以下の操作により、テーブルが再構築されます。
1.カラムのauto_increment属性を削除します;
2、定数の追加、削除、列挙型定数の変更、または定数の設定。すでに値が使用されている定数を削除した場合、クエリは空の文字列を返します。
基本的なテクニックは、新しいテーブル構造用に新しい.frmファイルを作成し、元の.frmファイルを置き換えることです。
整数型の幅の指定について ハイパフォーマンスmysqlのための読書メモ