Open1
【DB】データベースが稼働している間にテーブルの構造を変更することができる「オンラインDDL」について📝

「オンラインDDL」について📝
オンラインDDL(Data Definition Language)は、データベースが稼働している間にテーブルの構造を変更することを可能にする機能です。
従来のDDL操作では、テーブルの構造を変更する際にはそのテーブルがロックされ、変更が完了するまで他の操作ができなくなることが一般的でした。
しかし、オンラインDDLを使用すると、テーブルの構造を変更している間も、そのテーブルに対する読み書きが可能になり、データベースの可用性を維持しながら構造の変更が行えるようになります。
Pros
MySQL5.5以前でもオンラインDDLが利用が可能
INPLACEでデータがコピーされて負荷が高めのケースにも負荷を抑えることが可能
Cons
INPLACEやINSTANTに比べて手順が煩雑で難易度が高め(ミスするとレプリケーションがコケて一時的にデータ欠損が発生する)
AUTO_ICMREMENTによる採番で歯抜けが発生するようになるので、歯抜けが一時的にでも許容されない場合は使えない
レプリカラグが大きく、それを許容できないような環境では使えない