【MySQL】大量データをDELETEした後のゴミデータを削除する方法


ここではMySQLで、大量データをDELETEした後のゴミデータを削除する方法を紹介しています。

大量データをDELETEした後のゴミデータ

大量のレコードをDELETEした場合、DELETEしたレコードは即時データベースから消えてなくなる訳ではなく、少しの間、空き番のような形でデータが残っています。

これらがゴミデータとなります。

ゴミデータを削除する方法

ゴミデータを明示的に削除するには、ANALYZE TABLEコマンドを使います。

ANALYZE TABLEコマンドの基本構文は次の通りです。

ANALYZE TABLE テーブル名1[,テーブル名2・・・];

ANALYZE TABLEコマンドを実行すると次のようになります。
※ANALYZEコマンドを実行中、該当テーブルはREADロックされます。

mysql> ANALYZE TABLE tab1;
+----------+---------+----------+----------+
| Table    | Op      | Msg_type | Msg_text |
+----------+---------+----------+----------+
| db.tab1  | analyze | status   | OK       |
+----------+---------+----------+----------+
1 row in set (0.08 sec)