0

バグのため、1つのテーブルにたくさんの行を挿入しました。行を削除しましたが、dbは200mbではなく>1gbです。どうすればそれを掃除できますか?テーブルを最適化してみました。サイズは縮小しませんでした。私はこの巨大なmysqlファイルで立ち往生していますか?

4

1 に答える 1

3

同一のテーブル構造を作成し、select * into newtable from oldtable次に. 最も速いクロスプラットフォームの方法。drop oldtablealter table newtable rename oldtable

(mysql では を使用できますrename table newtable to oldtableが、それは標準の sql ではありません。)

1 つの注意点として、これは mysql がテーブルごとに 1 つのファイルに設定されている場合にのみ機能します。これはデフォルトの AFAIK ですが、1 つのファイルにすべてのテーブルを設定することもできます。そのように設定されている場合は、データベース全体を複製する必要があり、これははるかに重要な作業です。単一の「ibdata」ファイルがある場合、すべてのテーブルが 1 つのファイルにあり、おそらくこの回答が表示されるはずです。

于 2012-07-29T04:03:53.537 に答える