我正在尋找將BDB的Java版本4.1.7的數據庫類型從BTree更改爲哈希。核心版本有DatabaseType.HASH,DatabaseType.RECNO和DatabaseType.Queue-這些在Java版本中不受支持。如果是的話,是否有理由放棄這些?無法更改Java版中的Berkeley DB數據庫類型?
1
A
回答
10
Berkeley DB產品管理總監David Segleau在這裏。一般來說,我們建議人們提問Berkeley DB forums。您會在那裏找到一個活躍的Berkeley DB應用程序開發人員的大型社區。
是的,Berkeley DB(C中的原始產品)具有B-樹,散列,隊列和Recno訪問方法。 Berkeley DB Java版僅支持B-Tree。其主要原因是我們約99%的用戶使用B-Tree進行存儲,而Hash僅由一小部分應用程序使用。
圍繞這個話題的一些有用的技術小竅門:
- 哈希是誰擁有龐大的數據集和可用內存高速緩存的極少量的人尤其有用。在這種特殊情況下,B-Tree可能需要多個I/O才能獲取內部索引頁(不適合緩存),然後獲取記錄。散列通常可以通過單個I/O訪問數據記錄。
- 如果您想順序訪問您的數據或允許重複項,哈希通常是沒有用的,因爲在哈希索引中沒有隱含順序。
- 大多數應用程序都有足夠的可用內存緩存來保存B樹的內部節點以及最常訪問的數據記錄。在這種更常見的情況下,B樹和哈希將具有幾乎相同的性能。
- 在過去的一年中,Berkeley DB Java版團隊一直與客戶和應用程序開發人員密切合作,使用非常大的數據集(在250GB - 低TB範圍內)。特別是,他們一直專注於如何最大限度地提高緩存效率,改進緩存驅逐算法並最大限度地減少Java垃圾收集的影響。我們發現BDB JE 4.1在緩存管理和效率方面表現要好得多,特別是對於超過可用緩存的數據集。有關此更改的更多信息,請參閱Berkeley DB下載頁面上的BDB JE 4.1.7更新日誌。
- 有關Berkeley DB中哈希與B-Tree訪問方法的更多信息,請參閱BDB參考手冊(選擇訪問方法)的第2章。
我希望這有幫助。
問候,
戴夫
0
我也想了解同樣的事情。我也很喜歡在(1)場景中使用Hash的可能性,因此在內存大小和數據集大小之間有一個特定的比例。
有沒有這方面的選擇?你打算在未來把它放回去嗎? bergley db je在oracle.com上的站點說,訪問時間是獨立於數據集大小的常數。如果你使用BTrees,這種說法是錯誤的。
相關問題
- 1. 用Java編寫Berkeley DB的舊版本
- 2. 無法從大型Berkeley DB文件讀取數據
- 3. Berkeley DB java版,支持保存向量
- 4. 分區Berkeley DB SQL API數據庫
- 5. Berkeley DB(Java版本)是否支持數據分區?
- 6. 具有未知數據類型的Berkeley DB元組
- 7. 無法更改Windows中的Java版本
- 8. 無法更改Neo4j中的數據庫
- 9. 無法更改數據類型的列的,一旦有數據
- 10. 更改數據類型的問題Java
- 11. Berkeley DB的用法如何?
- 12. Berkeley DB(無法定位組件)
- 13. berkeley db java中的多個鍵
- 14. 在Berkeley DB的
- 15. Berkeley DB的GUI
- 16. 無法訪問由Berkeley DB使用C創建的數據庫中的多個數據C
- 17. 更改Java項目的數據庫類型?
- 18. 如何更改德比數據庫中列的數據類型?
- 19. 更改生產數據庫中的主鍵數據類型
- 20. 更改生產數據庫中的列數據類型
- 21. 無法更改類型泛型方法
- 22. Berkeley DB JE Base API輔助數據庫和序列的問題
- 23. 可以通過oracle berkeley db java版使用由c實現(python bsddb)創建的bdb(berkeley db)文件嗎?
- 24. Berkeley DB for iPhone
- 25. GAE上的berkeley DB
- 26. Heroku上的Berkeley DB
- 27. 的Berkeley DB Java編譯問題
- 28. 無法使用java更新oracle數據庫中的數據
- 29. 無法使用postgres DB確定數據庫類型爲NONE的嵌入式數據庫驅動程序類
- 30. 組合框無法更改數據庫
戴夫,怎麼樣recno? – bmargulies 2011-03-28 14:46:46
Recno只是一個帶有數字鍵值的btree。 Recno具有邏輯記錄編號鍵行爲的某些特定屬性。有關更多信息,請參閱參考指南:http://bit.ly/f7Kh2P。正如我所提到的,大多數人使用B樹。如果您對使用Recno,Hash或Queue感興趣,最好的選擇是通過Java API使用Berkeley DB產品。 – dsegleau 2011-04-05 03:22:09