非常に大きな MySQL テーブル (数百万行) があり、新しいデータを 20 分で取得します。私は最初に間違いを犯し、タイムスタンプ データを持っていましたが、本当に欲しかったのは datetime 列でした。古いテーブルまたは新しいテーブルに新しいデータを追加しながら、できるだけ早く現在のテーブルをエイドするか、新しいテーブルに移行するにはどうすればよいですか?
質問する
115 次
1 に答える
1
それはむしろ、何/誰がデータベースを使用しているか、およびあなたが持っているコントロールに依存します...
1 つのアプローチとして次のようなものがあります。
- (必要なデータ構造を持つ) 新しいテーブルを作成します (
CREATE TABLE...
) - データベースに書き込んでいるコード/プロセスを修正して、古いテーブルと新しいテーブルの両方に書き込むようにします (ただし、古いテーブルからの読み取りは続行します)。
- すべてが両方に書き込まれている場合は、古いデータを古いテーブルから新しいテーブルにコピーします (
INSERT ... SELECT ...
) - データベースから読み取っているコード/プロセスを修正して、新しいテーブルから読み取るようにします (ただし、両方に書き込みを続けます)
- すべてが新しいテーブルから読み取られている場合は、新しいテーブルにのみ書き込むようにコード/プロセスを修正します
- すべてが新しいテーブルから読み書きしている場合 (単独で)、古いテーブルを削除できます。(
DROP TABLE...
)
既存のテーブルを変更する (つまり、新しい列を作成する) ことで同様のことを行うこともできますが、データが 20 分ごとに更新される場合、テーブルが非常に大きくなる可能性があります。 run - 代わりに新しいテーブルに移行することをお勧めします。
于 2012-05-24T22:32:33.667 に答える