MySQL InnoDB はテーブルからデータ行を削除した後、ディスク領域を解放しません
P粉148434742
P粉148434742 2023-10-15 00:02:19
0
2
743

InnoDB ストレージ エンジンを使用する MySQL テーブルがあり、約 200 万のデータ行が含まれています。テーブルからデータ行を削除しても、割り当てられたディスク領域は解放されません。 optimize table コマンドを実行した後、ibdata1 ファイルのサイズは減少していません。

MySQL からディスク容量を再利用する方法はありますか?

私は悪い状況に陥っています。アプリケーションは約 50 か所の異なる場所で実行されており、ほぼすべての場所でディスク容量が不足しています。

P粉148434742
P粉148434742

全員に返信(2)
P粉183077097

私自身も同じ問題に遭遇しました。

データベースを削除しても、innodb は依然としてディスク領域を解放しません。エクスポートし、mysql を停止し、ファイルを手動で削除し、mysql を起動し、データベースとユーザーを作成してからインポートする必要があります。ありがたいことに、行は 200MB しかありませんが、250GB の innodb ファイルが節約されました。

設計は失敗しました。

いいねを押す +0
P粉340980243

MySQL は ibdata1 のサイズを削減しません。一度。 Optimize Table を使用して、削除されたレコードによって使用されていたスペースを解放した場合でも、そのスペースは後で再利用されます。

別の方法は、innodb_file_per_table を使用するようにサーバーを構成することですが、これにはバックアップ、データベースの削除、および回復が必要です。良い面としては、最適化されたテーブルです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート