這與我以前的問題Click here一起使用。 我們正在使用的Berkeley DB用於臨時存儲被處理並存儲到關係DB.The問題出現之前,當超過一定point.Now大小增加,我們必須要麼將文件分割成較小的或壓縮現有files.In這個問題我想問一下壓縮部分,berkeley DB是否有內置的壓縮工具,或者我們是否需要編程。如果它是內置的,那麼它總是會更快。Berkeley DB文件壓縮
回答
從here:
據伯克利的常見問題有(前壓縮)優化它的方法有兩種:
- 緊湊
- 真空
您還可以實現您的自己的壓縮算法如here所示。
來自SQLite的Berkeley DB VACUUM有什麼不同?
的SQLite 實現真空命令爲數據庫轉儲,然後從轉儲 完整的重新加載。這是一項昂貴的操作,在整個操作期間鎖定整個數據庫。這也是一個全部或全無的操作。要麼它工作,要麼失敗,你必須在某個時候再次嘗試 。當SQLite完成時,由於從轉儲文件中按順序鍵入 數據,因此數據庫的大小通常較小(文件大小較小),並且btree的組織(淺)比以前要好( )。 SQLite,它的工作原理以及你可以承受的數據鎖定每個人,都會很好地完成VACUUM。 Berkeley DB以完全不同的方式解決這個問題。對於許多 版本現在的Berkeley DB的B樹的實現不得不壓縮能力 而其他算子的研究是在飛行中。壓實是 方法,其中的B樹的節點被檢查,並且當小於 最佳的,它們被重新組織(反向分裂,等)。 B-Tree越淺,在葉節點 處查找數據所需的查找次數越少。伯克利DB可以一次緊湊樹的部分,或整個樹 。對於7x24x365(五個9)的操作,這是至關重要的。緊湊版的BDB 不會對正在進行的數據庫操作產生不利影響 而SQLite的方法確實如此。但是壓縮並不能解決數據庫中的空的 部分(數據庫文件中刪除了 數據的部分)。 Berkeley DB的也由文件內移動數據,然後截斷返回該空間文件系統文件 支持數據庫的壓縮 文件。從Berkeley DB版本5.1起,VACUUM命令將壓縮並壓縮數據庫文件。 此操作比SQLite 的轉儲/加載方法需要更多時間,因爲它正在執行更多工作以允許數據庫保持 的可操作性。我們認爲這是正確的權衡,但如果您不同意,您可以隨時在代碼中轉儲/加載數據庫。
- 1. Berkeley DB文件拆分
- 2. 從CLI檢查Berkeley DB文件
- 3. Python Berkeley DB/Sqlite
- 4. 在Berkeley DB的
- 5. Berkeley DB for iPhone
- 6. Berkeley DB的GUI
- 7. GAE上的berkeley DB
- 8. Heroku上的Berkeley DB
- 9. Berkeley XML DB「where」analog
- 10. Berkeley DB SIGBUS錯誤
- 11. 壓縮文件
- 12. Berkeley DB Core和Berkeley DB之間的選擇JE
- 13. 壓縮文件未解壓
- 14. Node.js - 壓縮/解壓縮文件夾
- 15. Magick ++壓縮和解壓縮文件
- 16. 壓縮未壓縮的MSI文件
- 17. 與django_compressor壓縮文件以gzip壓縮
- 18. 在yii中壓縮/解壓縮文件
- 19. 壓縮和解壓縮文件夾
- 20. 如何壓縮文件時不壓縮
- 21. 壓縮解壓縮的exe文件
- 22. png文件的壓縮和解壓縮
- 23. IIS 7.5壓縮會創建壓縮文件,但會返回非壓縮文件
- 24. .NET使用壓縮和非壓縮數據壓縮文件
- 25. 壓縮.htaccess文件
- 26. 壓縮AVI文件
- 27. 壓縮MDB文件
- 28. 解壓縮文件
- 29. 壓縮KML文件
- 30. 壓縮Javascript文件
經過長時間的戰鬥。現在我確信壓縮並不能提高性能。現在我已經放棄了壓縮的整個想法,並想到在硬件級別(如RAID)實施優化。 – Madusudanan 2012-11-15 07:21:57
但至少你節省了磁盤? – skan 2013-08-28 12:55:06