私は定期的にmysql 5.1のテーブルを変更する必要があり、ほとんどの場合は列を追加します。alter tableコマンドを使用すると非常に簡単です。しかし、私のテーブルには現在最大4,000万行あり、急速に成長しています...したがって、これらのalter tableコマンドには数時間かかります。数ヶ月で彼らは私が推測している数日かかるでしょう。
Amazon RDSを使用しているため、スレーブサーバーを使用してマスターに昇格させることはできません。私の質問は、最小限のダウンタイムでこれを行う方法があるかどうかです。ユーザーがもちろんデータベースを使用できる場合、数時間または数日かかる操作を気にしません...列が追加されている間に少なくとも読むことができますか?アプリが書き込もうとするとどうなりますか?挿入または更新しますか?すぐに失敗した場合、実際にはそれほど悪くはありません。ハングしただけで、大きな問題であるdbサーバーに問題が発生した場合。
これはかなり一般的なスケーリングの問題である必要があり、誰もが列を追加する必要があります。スレーブ->マスター移行?
更新 -私はinnodbストレージエンジンを使用していることに言及するのを忘れました