2014-11-15 27 views
0

我的理解是(糾正我,如果我錯了或不準確),當你從MySQL表中刪除數據(比如說,一整行)時,數據庫文件的文件大小不會縮小。如果你有一個20Gb的數據庫,並從中刪除了19Gb的數據,你將不會有1Gb的數據庫文件,它仍然是20Gb。當從mysql中刪除數據時,它佔用的空間會發生什麼?

在數據曾經是文件的「空間」中會發生什麼?它是否被空數據取代?或者刪除的數據仍然保留在文件中,但是被標記爲已被刪除,並且不能通過運行選擇查詢之類的常規方式再被看到?如果我向數據庫中添加更多數據,它是否會進入原來被刪除數據的空間,還是會佔用新的空間?

例如,在上面的例子中,如果我從20Gb數據庫中刪除19Gb,然後添加5Gb的新數據,數據庫是20Gb還是25Gb?

回答

1

只要插入完成,它就成爲可重複使用的可用空間。它可以通過OPTIMIZE TABLE命令發佈到操作系統。

相關問題