私は、定期的に新しいデータで完全に再生成されるdbテーブルを持っています。このデータは、対応するライブDBテーブルにプッシュされ、以前のライブデータが上書きされる必要があります。ライブデータベーステーブルを更新するための良い方法は何ですか?
テーブルのサイズが大きくなると、ライブテーブルにデータをプッシュするのに必要な時間も長くなり、アプリケーションは欠落しているように見えます。
新しいデータをlive_tempテーブルにプッシュし、このテーブルでSQL RENAMEコマンドを実行して、ライブテーブルとして名前を変更します。名前の変更は、通常、1秒未満で実行されます。これはこの問題を解決する "正しい"方法ですか?
この問題に取り組むための他の戦略やツールはありますか?ありがとう。
ありがとうございます!私は、テーブル名に新しいバージョンを追加する新しいテーブルを設定することもできます。次に、クライアントはcurrent_versionテーブルを検索し、それに応じて最新のテーブルを検索することができます。これにより、既にかなり大きなテーブルに全く新しい列を追加することを避けることができます。 –
また、MySQL Renameコマンドがアトミックであることが判明しました。たとえば、RENAME TABLE table1 TO table_bak、table_temp TO table1は1ステップで実行され、table1が常にクライアントにアクセス可能であることを保証します。私はこれが今私がやることだと思います!つまり、Renameは外部キーを保持しないので、InnoDBと外部キー(私たちはMyISAMを使用しています)を使用するときにスキーマを混乱させる可能性があります。ありがとう。 –