1. ホーム
  2. mysql

[解決済み] MySQL InnoDBがテーブルからデータ行を削除した後、ディスクスペースを解放しない

2022-04-27 17:09:04

質問

InnoDBストレージエンジンを使用したMySQLテーブルが1つあり、約2Mのデータ行を含んでいます。テーブルからデータ行を削除しても、割り当てられたディスクスペースが解放されません。 を実行しても、ibdata1 ファイルのサイズは小さくなりませんでした。 optimize table コマンドを実行します。

MySQLのディスクスペースを再利用する方法はありますか?

私は悪い状況にあります。このアプリケーションは約50の異なる場所で実行されており、現在ほとんどすべての場所でディスク容量が少ないという問題が発生しています。

どうすればいいですか?

MySQL は ibdata1 のサイズを縮小しない。ずっとです。たとえ optimize table を使用して、削除されたレコードから使用されているスペースを解放するために、後でそれを再利用します。

別の方法として、サーバーが innodb_file_per_table しかし、この場合、バックアップ、データベースの削除、リストアが必要になります。ポジティブな面は、テーブルの .ibd ファイルが optimize table .