2016-03-14 65 views

回答

1

您的數據庫可能仍然保留您之前記錄的空間。

這實質上是同一個問題:

Why does clearing an SQLite database not reduce its size?

接受的答案:

當一個對象(表,索引,觸發器或視圖)從數據庫中刪除,它留下空的空間。下一次將新信息添加到數據庫時,該空白空間將被重新使用。但與此同時,數據庫文件可能大於嚴格必要的。此外,頻繁的插入,更新和刪除操作可能會導致數據庫中的信息變得碎片化 - 在整個數據庫文件中都會出現碎片,而不是在一個地方聚集在一起。

VACUUM命令通過將其內容複製到臨時數據庫文件並從副本重新加載原始數據庫文件來清除主數據庫。這消除了空閒頁面,將表格數據對齊爲連續的,否則清理數據庫文件結構。

編輯:如果您希望定期執行此操作,您可能需要研究編譯指令'auto_vacuum'。它會保持您的文件大小,但有一些優點和缺點。在生產環境中,最好預留比需要的更多空間,因爲這可以降低服務器磁盤空間不足的風險。

相關問題