MySQLでデータを削除したのに、領域が縮まない場合はどうすればいいですか?
MySQLの特性として、データ削除後にすぐにデータベースの容量が減らない場合があります。これは、MySQLではデータ変更操作のログであるトランザクションログを用いて、データの整合性と永続性を確保するためです。
データを削除すると、MySQLは対応するレコードに削除マークを付けて、すぐにディスク容量を開放するのではなく、ディスク操作を頻繁に行うことを避けて、データベースのパフォーマンスを向上させます。
削除したデータの使用しているディスク領域を再利用したい場合、次の方法を利用できます:
- テーブルの最適化
- テーブル名
OPTIMIZE TABLE table_name;
- ALTER TABLE
- ネイティブな日本語で言い換えてください。一个选项即可:ALGORITHM = INPLACE
- テーブル名
ALTER TABLE table_name ALGORITHM=INPLACE;
なお、操作により一時的にデータベースのパフォーマンス低下が発生する可能性がありますので、実行前に必ずデータベースのバックアップを行ってください。
MySQLは他の最適化技術とツール(パーティションテーブルや圧縮テーブルなど)を提供しており、データベースのスペース使用量をさらに削減できます。