MySQLでカラムの長さをロックしずに変更する方法

MySQL テーブルの列のサイズを変更する方法には、ロックなしの次の 2 つがあります。

  1. ALTER TABLE
  2. ネイティブで置き換える
  3. ロックを解除
ALTER TABLE table_name ALGORITHM=INPLACE, LOCK=NONE MODIFY COLUMN column_name varchar(255);

オンライン環境でフィールド長の変更が可能、テーブルのロック不要、ただし MySQL のバージョンが 5.6.17 以上である必要があります。

  1. pt-online-schema-change
  2. pt-online-schema-change
pt-online-schema-change --alter "MODIFY COLUMN column_name varchar(255)" D=database_name,t=table_name

既存テーブルから別の構造のテーブルへ変更する場合、一時テーブルを作成して既存テーブルからデータを移行することで、データ更新を継続的に行いつつテーブル構造の変更が可能です。

bannerAds