データ削除後の MySQL InnoDB のディスク領域の再利用
InnoDB を使用して MySQL テーブルからデータを削除した後、割り当てられたディスク領域がディスク領域は占有されたままになります。これは、特に大規模なアプリケーションで、深刻なディスク領域の制約につながる可能性があります。
削除後に InnoDB が領域を解放しないのはなぜですか?
MySQL の InnoDB ストレージ エンジンは、 「その場で削除」の原則。これは、データ行が削除されるとき、物理的にではなく、既存のファイル内の空き領域としてマークされるだけであることを意味します。削除されました。これにより、大規模なデータの書き換えの必要性が回避され、効率的なデータ取得が可能になります。
ディスク スペースを再利用する方法
InnoDB はディスク スペースを自動的に解放しませんが、手動で再利用する方法は次のとおりです。
1.テーブルの最適化:
問題のテーブルに対して「OPTIMIZE TABLE」コマンドを実行すると、連続した空き領域が再利用可能としてマークされます。ただし、これは実際にスペースを解放するのではなく、再利用できるように準備するものであることに注意することが重要です。
2. InnoDB File-Per-Table:
innodb_file_per_table を使用するようにサーバーを構成すると、各テーブルに独自の専用の .ibd ファイルが作成されます。テーブルからデータが削除されると、「OPTIMIZE TABLE」を実行すると、対応する .ibd ファイルのサイズが減少します。このアプローチには、新しいデータベースの作成とデータの復元が含まれており、より複雑なソリューションになります。
3.ダンプと復元:
InnoDB のディスク領域を再利用する最も効果的な方法の 1 つは、データベースの論理バックアップを実行し、既存のデータベースを削除してから、バックアップを復元することです。このプロセスにより、削除されたデータが物理的に削除され、.ibd ファイルのサイズが削減されます。
4.サードパーティ ツール:
MySQL のディスク領域の再利用を支援できる「pt-shrink」などのサードパーティ ツールがあります。これらのツールは、論理バックアップを実行し、テーブルを最適化し、新しいデータベースにデータを復元します。
注意:
後でデータを回復することはできないことを理解することが重要です。ディスク領域の再利用方法が適用されています。したがって、推奨される手法を実行する前に、データベースをバックアップすることを強くお勧めします。
以上がデータを削除した後に MySQL InnoDB のディスク領域を再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。