MySQL で ALTER TABLE ステートメントを実行すると、ステートメントが実行されている間、テーブル全体が読み取りロックされます (同時読み取りは許可されますが、同時書き込みは禁止されます)。大きなテーブルの場合、INSERT または UPDATE ステートメントが長時間ブロックされる可能性があります。プロセス全体でテーブルを更新できるように列を追加するなど、「ホットな変更」を行う方法はありますか?
ほとんどの場合、MySQL のソリューションに興味がありますが、MySQL で解決できない場合は、他の RDBMS に興味があります。
明確にするために、私の目的は、追加のテーブル列を必要とする新機能が本番環境にプッシュされるときのダウンタイムを回避することです。どのデータベース スキーマも時間の経過とともに変化します。これは単なる現実です。これらの変更によって必然的にダウンタイムが発生することを受け入れなければならない理由がわかりません。それはただ弱いです。