10GB以上の巨大なテーブルではTRUNCATEに長い時間がかかりますか?

10GB以上の巨大なテーブルではTRUNCATEに長い時間がかかりますか?

運用サーバー上の約 12 GB のテーブルでphpMyAdmin の機能を使用するのは良い考えかどうか疑問に思っていますempty。あまり遅延を引き起こしたくはありませんが、ディスク領域をいくらか解放する必要があります。

これは、Debian 搭載の DELL サーバーで実行する必要があります。

MySQL 5.1.49 Intel Xeon X3430 @ 2.40Ghz 4GB メモリ

phpMyAdmin を使用してTRUNCATEテーブルを空にすると仮定します。テーブルを切り捨てるには数分または数時間かかると予想されますか、それともテーブルを削除するのと同様にかなり迅速なプロセスですか?

答え1

もしあるならゼロテーブル スキーマをロックするトランザクションの場合、TRUNCATE TABLEコマンドはほぼ瞬時に終了します。これまで私が待機した最長時間は、25 GB のテーブルを切り捨てる際に 0.1 秒でした。

いずれにしても、TRUNCATE TABLEコマンドは他のメンテナンス操作以外には望ましくない副作用をもたらすことはありません。サーバーが必要な排他ロックを取得できない場合はブロックされますが、これは大量の IO や処理が必要なためではなく、単に順番を待っているだけです。

関連情報