私はいくつかの非常に大きなデータベースを作成し、それ以来いくつかを削除しました。ディスク容量が思ったほど回復していないことに気づきました。たとえば、最後に追加したデータベースが実際にすべての空き領域を使い果たして中止したため、そのスキーマを削除しました。これまでは12.4GBの空き容量がありましたが、現在は7.52GBの空き容量しかありません。
何が起きてる?〜5 GBを取り戻すにはどうすればよいですか?
1 に答える
http://dev.mysql.com/doc/refman/5.1/en/innodb-data-log-reconfiguration.htmlから:
現在、表領域からデータファイルを削除することはできません。表領域のサイズを減らすには、次の手順を使用します。
mysqldumpを使用して、すべてのInnoDBテーブルをダンプします。
サーバーを停止します。
ibdataファイルとib_logファイルを含むすべての既存のテーブルスペースファイルを削除します。情報のバックアップコピーを保持する場合は、MySQLインストールでファイルを削除する前に、すべてのib*ファイルを別の場所にコピーします。
InnoDBテーブルの.frmファイルをすべて削除します。
新しい表領域を構成します。
サーバーを再起動します。
ダンプファイルをインポートします。
Innodbは、データファイル自体の中にファイルシステム(「テーブルスペース」)を作成します。ファイル内のデータの再編成にはコストがかかる可能性があるため、データが削除されたときにデータファイルが「縮小」されることはありません(削除されたデータが最後にある、または連続しているという保証はありません)。上記のようにデータベースを再作成することにより、ファイルはすべてのデータに必要なだけ大きくなりますが、それより大きくなることはありません。