7

ibdata ファイルを調べたところ、128 GB でした。各テーブルのサイズを取り出したところ、テーブルには 500 万のレコードがあり、90 GB を示していました。

そのテーブルは不要だったので切り捨て、ibdata1 のサイズを確認しました。それでも 128 GB を示しています。次に、各テーブルのサイズを取り出したところ、その合計はわずか 35 ~ 38 GB です。

Db サーバーの 90 GB のスペースを取り戻すにはどうすればよいですか。red-hat Linux サーバーで mysql と php を使用しています。

DB 上の何かを削除すると、レプリケーションが削除されるだけですが、割り当てられたスペースは、手動で行うまで割り当て解除されません。その通りか。

4

1 に答える 1

5

ibdata ファイルによってスペースが消費されると、なくなることはありません。データ ファイルを「シンク」する唯一の方法は、データベースをダンプし、それらをすべて削除し、ibdata ファイルを削除し、mysql を再起動して、ダンプをリロードすることです。

テーブル全体を頻繁に削除する場合は、テーブルごとに 1 つのデータ ファイルを使用するように innodb を構成できます。この場合、テーブルを削除すると、そのテーブル固有の ibdata ファイルを削除できます。

于 2012-12-19T13:12:43.033 に答える