当前位置: 首页 > 面试题库 >

推荐快速且可扩展的持久性地图-Java

慕河
2023-03-14
问题内容

我需要磁盘支持的Map结构才能在Java应用程序中使用。它必须具有以下条件:

  1. 能够存储数百万条记录(甚至数十亿条)
  2. 快速查找-地图上的大多数操作将仅查看密钥是否已存在。这和上面的1是最重要的标准。对于常用的密钥,应该有一种有效的内存缓存机制。
  3. 持久但不需要事务性,可以承受一些失败。即乐于定期与磁盘同步,并且不需要事务性。
  4. 能够存储简单的原始类型-但是我不需要存储序列化的对象。
  5. 它不需要分发,即将全部在一台计算机上运行。
  6. 易于设置且免费使用。
  7. 无需关系查询

记录键将是字符串或长号。如上所述,读操作比写操作要频繁得多,并且大多数读操作只是检查密钥是否存在(即,不需要读取与数据相关的密钥)。每条记录将仅更新一次,并且不会删除记录。

我目前使用Bdb JE,但正在寻求其他选择。

更新资料

此后,通过减少对辅助键的依赖性,提高了我现有BDB设置上的查询性能。一些查询需要在两个辅助键上进行联接,然后通过将它们组合成一个复合键,我在查找中删除了一个间接级别,从而很好地加快了工作速度。


问题答案:

我可能会使用本地数据库。就像说Bdb
JE
或HSQLDB一样。请问这种方法有什么问题?您必须有一些理由寻找替代品。

回应评论:由于问题的表现,我想您已经在使用JDBC来解决此问题,可能值得尝试HSQLB并阅读“
内存和磁盘使用 ”一章。



 类似资料:
  • Requests 拥有很多强大有用的第三方扩展。这里概述了其中最好的几个。 Certifi CA Bundle Certifi 是一个精心准备的根证书集合,用来验证 SSL 证书的可信任度,同时还会验证 TLS 主机的身份。这是一个从 Requests 项目中剥离出来的项目。 CacheControl CacheControl 这个扩展能为 Requests 添加完整的 HTTP 缓存功能。这样你

  • 本文向大家介绍three.js快速入门【推荐】,包括了three.js快速入门【推荐】的使用技巧和注意事项,需要的朋友参考一下 Three.js的核心五步就是: 1.设置three.js渲染器 2.设置摄像机camera 3.设置场景scene 4.设置光源light 5.设置物体object 1.设置three.js渲染器 三维空间里的物体映射到二维平面的过程被称为三维渲染。 一般来说我们都把进

  • 问题内容: Swift提供了编写扩展的功能。我做了很多事情,以使我的代码更易于阅读。不知道它们是否无害。我想知道,由于性能原因,仅省略扩展会更好吗? 问题答案: Apple鼓励使用扩展名。你可以阅读更多关于他们的雨燕文档上这里。

  • 我有一个PrimeFaces数据表,有一列名为“name”,还有一个行扩展名为“description”。 是否有可能通过单击使这些行可选择,但在扩展时不能触发选择事件? 编辑

  • 本文向大家介绍Java的JNI快速入门教程(推荐),包括了Java的JNI快速入门教程(推荐)的使用技巧和注意事项,需要的朋友参考一下 1. JNI简介 JNI是Java Native Interface的英文缩写,意为Java本地接口。 问题来源:由于Java编写底层的应用较难实现,在一些实时性要求非常高的部分Java较难胜任(实时性要求高的地方目前还未涉及,实时性这类话题有待考究)。 解决办法

  • 我有数百个测试用例,是用arquillian-persistence-extension编写的。这些测试运行在WildFly管理的容器上,并且使用WildFly提供的默认H2数据库。当测试被执行时,我会收到很多类似的警告: 所以我在警告本身中列出了一些选项,但那样做有点问题,因为我不想提供不需要的DbUnit依赖关系,而只是想在此基础上使用APE。 所以我的问题是,有没有什么简单的方法来定义默认的