Java中最高性能的数据库

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (83)

我需要一些想法来实现(真的)高性能内存数据库/存储机制的Java。在存储20,000个Java对象的范围内,每5秒钟更新一次。 我可以选择的一些选项:

纯JDBC /数据库组合

JDO

JPA / ORM /数据库组合

一个对象数据库

其他存储机制

我最好的选择是什么?你有什么经验?

我也需要能够查询这些对象

提问于
用户回答回答于

你可以尝试一些像Prevayler(基本上是一个内存缓存,为你处理序列化和备份,所以数据持久,并在事务安全)。还有其他类似的项目。我已经将它用于大型项目,它非常安全,速度非常快。

如果它是同一组20,000个对象,或者每5秒钟至少没有20,000个新对象但有很多更改,则缓存更改并定期以批处理方式写入更改可能会更好(jdbc批量更新比单个行更快更新)。取决于您是否需要每次写入都是事务封装的,以及是否需要更改日志的记录或仅汇总更改。

正如其他职位已经提到Prevayler我以为我会留下一个说明它的作用:基本上你创建一个可搜索的/可序列化的对象(通常是某种类型的映射),它包装在一个Prevayler实例,它被序列化到磁盘。您可以通过向您的Prevayler实例发送您的更改的可串行化记录(仅包含更改说明的对象)来进行更改,而不是直接对您的地图进行更改。Prevayler的事务版本是将序列化更改写入磁盘,以便在发生故障时可以加载上次完整备份,然后根据该备份重播更改。尽管你必须有足够的内存来加载所有的数据,并且它是一个相当旧的API,但是很不幸,所以没有通用接口。

用户回答回答于

我强烈推荐H2。这是一位原创作者完成的一种“第二代”HSQLDB版本。 H2允许我们在不需要实际的PostgreSQL数据库的情况下对我们的DAO层进行单元测试,这非常棒

有一个活跃的网络组和邮件列表,作者Thomas Mueller对查询非常敏感

扫码关注云+社区