我一直在玩數據庫,我導入了超過百萬列,最後玩功能,我只選擇了一個值,刪除了其餘的和我的數據庫的大小超過200MB。我正在做sqlite3。如何減小它的大小?數據庫只有一個表,一列,一個值大於200mb
1
A
回答
1
您的數據庫可能仍然保留您之前記錄的空間。
這實質上是同一個問題:
Why does clearing an SQLite database not reduce its size?
接受的答案:
當一個對象(表,索引,觸發器或視圖)從數據庫中刪除,它留下空的空間。下一次將新信息添加到數據庫時,該空白空間將被重新使用。但與此同時,數據庫文件可能大於嚴格必要的。此外,頻繁的插入,更新和刪除操作可能會導致數據庫中的信息變得碎片化 - 在整個數據庫文件中都會出現碎片,而不是在一個地方聚集在一起。
VACUUM命令通過將其內容複製到臨時數據庫文件並從副本重新加載原始數據庫文件來清除主數據庫。這消除了空閒頁面,將表格數據對齊爲連續的,否則清理數據庫文件結構。
編輯:如果您希望定期執行此操作,您可能需要研究編譯指令'auto_vacuum'。它會保持您的文件大小,但有一些優點和缺點。在生產環境中,最好預留比需要的更多空間,因爲這可以降低服務器磁盤空間不足的風險。
相關問題
- 1. 嘗試後只有一個單一的列到數據庫
- 2. LINQ過濾一個數據庫列表與另一個數據庫列表
- 3. 如何約束一個數據庫表,使一列中只有一行可以有特定的值?
- 4. 在json中只有幾個數據庫列中的一個空
- 5. mysql複製:一個主站有很多數據庫,兩個從站 - 一個用於所有數據庫和一個 - 僅用於其中一個數據庫
- 6. Mysql基於另一個表更新一個表列大量的數據
- 7. 一個大熊貓數據幀的列值取到一個列表
- 8. 當單列中的另一個表的所有數據都等於某個值時,更改一個表數據
- 9. 創建一個每個值只有一行的新數據框
- 10. 只有幾列的數據複製到另一個數據表
- 11. 將一列數據從一個數據庫複製到另一個數據庫
- 12. 如何將一個數據庫的一個表設計結構用於另一個數據庫表結構
- 13. 一個數據庫序列
- 14. 從一個數據庫表插入另一個數據庫
- 15. 用另一個數據庫替換一個數據庫的表
- 16. PL/SQL - 一個人只有一個值
- 17. 如何將表值從一個數據庫插入另一個數據庫?
- 18. 將數據庫中的一個表的值插入另一個數據庫中的另一個表中
- 19. WCF數據庫連接:只有一個數據庫連接
- 20. 是否可以約束一個表只有一組列中的一個值
- 21. 將三列從一個數據庫表複製到另一個
- 22. R:操縱基於另一列一個數據幀列的值
- 23. 根據另一個列表的值創建一個列表c#
- 24. 將一個大型(30,000行)表從一個數據庫複製到另一個數據庫的最快方法?
- 25. 將數據從一個數據庫表複製到另一個數據庫表?
- 26. 插入從一個數據庫到另一個數據庫中的所有表
- 27. 在一個數據庫中所有表
- 28. 如何使用另一個數據庫表作爲SQL參考更新一個數據庫表中的列值
- 29. 值從一個表中插入到另一個在同一個數據庫中?
- 30. 用NHibernate創建一個SQLite數據庫,但只有一次