検索

ホームページ  >  に質問  >  本文

MySQL InnoDB はテーブルからデータ行を削除した後、ディスク領域を解放しません

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

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

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

P粉148434742P粉148434742408日前693

全員に返信(2)返信します

  • P粉183077097

    P粉1830770972023-10-15 17:09:49

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

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

    設計は失敗しました。

    返事
    0
  • P粉340980243

    P粉3409802432023-10-15 16:24:36

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

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

    返事
    0
  • キャンセル返事