TRUNCATE 在 10gig+ 的大表上是否需要很長時間

TRUNCATE 在 10gig+ 的大表上是否需要很長時間

empty我想知道在生產伺服器上大約 12GB 的表上使用 phpMyAdmin 的功能是否是一個好主意。我不想造成太多延遲,但需要釋放一些磁碟空間。

這需要在 Debian 支援的 DELL 伺服器上完成:

MySQL 5.1.49 英特爾至強 X3430 @ 2.40Ghz 4GB 內存

假設 phpMyAdmin 用於TRUNCATE清空表。我可以期望幾分鐘甚至幾個小時來截斷表,還是這是一個類似於刪除表的相當快的過程?

答案1

如果有如果交易鎖定表模式,該TRUNCATE TABLE命令將幾乎立即完成。到目前為止,我等待的最多時間是截斷 25GB 表的 0.1 秒。

無論如何,TRUNCATE TABLE除了其他維護操作之外,命令不會對任何其他操作產生不良副作用。如果伺服器無法取得必要的排它鎖,它將阻塞 - 但不是因為它需要大量 IO 或處理 - 它只是在等待輪到它。

相關內容