0

非常に大きな MySQL テーブル (数百万行) があり、新しいデータを 20 分で取得します。私は最初に間違いを犯し、タイムスタンプ データを持っていましたが、本当に欲しかったのは datetime 列でした。古いテーブルまたは新しいテーブルに新しいデータを追加しながら、できるだけ早く現在のテーブルをエイドするか、新しいテーブルに移行するにはどうすればよいですか?

4

1 に答える 1

1

それはむしろ、何/誰がデータベースを使用しているか、およびあなたが持っているコントロールに依存します...

1 つのアプローチとして次のようなものがあります。

  • (必要なデータ構造を持つ) 新しいテーブルを作成します ( CREATE TABLE...)
  • データベースに書き込んでいるコード/プロセスを修正して、古いテーブルと新しいテーブルの両方に書き込むようにします (ただし、古いテーブルからの読み取りは続行します)。
  • すべてが両方に書き込まれている場合は、古いデータを古いテーブルから新しいテーブルにコピーします ( INSERT ... SELECT ...)
  • データベースから読み取っているコード/プロセスを修正して、新しいテーブルから読み取るようにします (ただし、両方に書き込みを続けます)
  • すべてが新しいテーブルから読み取られている場合は、新しいテーブルにのみ書き込むようにコード/プロセスを修正します
  • すべてが新しいテーブルから読み書きしている場合 (単独で)、古いテーブルを削除できます。( DROP TABLE...)

既存のテーブルを変更する (つまり、新しい列を作成する) ことで同様のことを行うこともできますが、データが 20 分ごとに更新される場合、テーブルが非常に大きくなる可能性があります。 run - 代わりに新しいテーブルに移行することをお勧めします。

于 2012-05-24T22:32:33.667 に答える