我正在寻找将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. Oracle Berkeley DB Java版中的重复键
- 2. 用Java编写Berkeley DB的旧版本
- 3. 无法从大型Berkeley DB文件读取数据
- 4. Berkeley DB java版,支持保存向量
- 5. 分区Berkeley DB SQL API数据库
- 6. 数据库连接MySQL或Berkeley DB
- 7. Berkeley DB(Java版本)是否支持数据分区?
- 8. 具有未知数据类型的Berkeley DB元组
- 9. Berkeley DB安卓版下载
- 10. 类型转换,从DB数据类型的Java数据类型
- 11. 无法更改Windows中的Java版本
- 12. 无法更改Neo4j中的数据库
- 13. 如何增加Berkeley DB Java版中的缓存大小
- 14. 在Oracle Berkeley DB中打开数据库环境的麻烦
- 15. 无法更改数据类型的列的,一旦有数据
- 16. Berkeley DB的用法如何?
- 17. 更改数据类型的问题Java
- 18. Berkeley DB(无法定位组件)
- 19. berkeley db java中的多个键
- 20. 在Berkeley DB的
- 21. Berkeley DB的GUI
- 22. 无法访问由Berkeley DB使用C创建的数据库中的多个数据C
- 23. 更改Java项目的数据库类型?
- 24. 使用java更改mysql数据库中的tinyint(1)数据类型
- 25. 在VS2010 DB项目中更改数据库归类
- 26. 更改生产数据库中的主键数据类型
- 27. 更改整个数据库中列的数据类型 - MySQL
- 28. 更改生产数据库中的列数据类型
- 29. Fluent NHibernate.Automapping更改数据库中的数据类型
- 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