3

250 GB 5 億行の MySQL テーブルがあり、その列の 1 つを削除したいと考えています。列は VARCHAR(255) です。できるだけダウンタイムを少なくしてこの操作を実行したいと考えています。考え:

  1. この操作に役立つ、追加できる構成はありますか?
  2. 各行の前にphpで繰り返し、その中の値を削除する方がよいでしょうか?
  3. 後で OPTIMIZE TABLE が必要ですか?
  4. そのような手順の合理的な推定時間はどれくらいですか?
4

1 に答える 1

0

ダウンタイムを最小限に抑えるために、個人的にバックアップして別のデータベースに復元し、「列の削除」を行ってから再度復元します。

  1. リンク

  2. そうかもしれませんが、時間がかかり、エラーが発生しやすくなります。

  3. はい、良い考えです。また、事前にANALYZE TABLEの使用を検討してください

テーブルを最適化します。OPTIMIZE コマンドは、定期メンテナンスのために DBMS がオフラインになっているときに実行する必要があります。コマンドは非標準 SQL です。

于 2012-10-16T08:05:52.207 に答える