2016-09-16 74 views
1

雖然在MySQL中使用DELETE和TRUNCATE命令是在進程中釋放的內存空間? 說如果我的表佔用100KB並且我刪除了所有的行,釋放多少內存空間? 如果我截斷表格,如果有多少空間釋放?MySQL內存空間

一旦我刪除或截斷了100KB表中的所有行,每種情況下100KB會發生什麼情況?

回答

2

沒有內存作爲DELETETRUNCATE操作的一部分被釋放。實際上,如果使用緩衝區,可能會消耗內存。不過,這通常是無關緊要的,因爲這將在必要時被重新用於其他目的。

磁盤空間可能會發布,具體取決於您使用的存儲引擎以及配置方式。默認情況下,InnoDB在磁盤上分配越來越多的存儲空間,但從不釋放它,所以你被困在最大的分配空間中,即高水位標記。釋放它不會給你任何磁盤空間,但它爲MySQL提供了更多空間來存儲數據。它剛剛被保留。

+0

如果我沒有得到更多的內存空間,那麼使用DELETing或TRUNCATing 100KB表有什麼用處?即使對我來說沒有用處,我也可以讓桌子存在。如果我的疑問真的很基本,我很抱歉。我從來沒有理解這些功能如何在內存中運行。 –