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