Myisam

沒有行的表不為空

  • September 8, 2014

我有幾個表被 Web 伺服器上的 cron 作業定期清除。但是,當這些表完全為空時,它們中似乎仍有數據。

例如,這個數據庫顯示了 2 個有 0 行的表,但它們的大小不是 0。如果我截斷這些表,它們確實會下降到 0。

我能想到的可能包含在這些表中的唯一額外數據是 id 欄位的自動增量數,但考慮到第一個表中的數字在螢幕截圖中僅為 29 117Kb 對於這麼小的一個一點數據。

空桌子…

抱歉,如果這是一個非常明顯的答案,我對數據庫的實際工作方式知之甚少。

TRUNCATE有效地刪除並重新創建表,因此分配的空間消失了。DELETE...命令只會刪除行,但不會導致磁碟上的表大小自動縮小。如果它是真的,這將導致每個DELETE...命令的過多 I/O 來收縮文件。

MySQL 5.7 的截斷參考

引用自:https://dba.stackexchange.com/questions/75994