首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中最高性能的数据库

Java中最高性能的数据库
EN

Stack Overflow用户
提问于 2009-01-13 17:34:47
回答 14查看 32.4K关注 0票数 16

我需要一些想法来在Java中实现一个(真的)高性能的内存中数据库/存储机制。在存储20,000+ java对象的范围内,每5秒左右更新一次。

以下是我可以选择的一些选项:

纯JDBC/数据库组合

JDO

JPA/ORM/数据库组合

对象数据库

其他存储机制

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

编辑:我还需要能够查询这些对象

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2009-01-13 17:47:47

你可以尝试像这样的东西

Prevayler

(基本上是一个内存中的缓存,它为您处理序列化和备份,因此数据可以持久保存,并且在事务上是安全的)。还有其他类似的项目。我已经在一个大型项目中使用过它,它很安全,而且速度非常快。

如果是同一组20,000个对象,或者至少不是每5秒有20,000个新对象,而是有很多更改,那么您最好缓存这些更改并定期以批处理模式写入这些更改(jdbc批处理更新比单个行更新快得多)。这取决于您是否需要对每个写入进行事务性包装,以及您是否需要更改日志的记录或仅聚合更改。

编辑

:就像其他文章提到的Prevayler一样,我想我应该对它的作用留下一个注释:基本上你创建了一个可搜索/可序列化的对象(通常是某种类型的Map ),它被包装在Prevayler实例中,该实例被序列化到磁盘上。您可以通过向Prevayler实例发送更改的可序列化记录(只是一个包含更改指令的对象)来进行更改,而不是直接对地图进行更改。Prevayler的事务版本是将您的序列化更改写入磁盘,以便在失败的情况下,它可以加载最后一个完整的备份,然后根据该备份重放更改。它是安全的,尽管您必须有足够的内存来加载所有数据,而且它是一个相当旧的API,所以不幸的是没有通用接口。但绝对是稳定的,工作起来就像广告所说的那样。

票数 12
EN

Stack Overflow用户

发布于 2009-02-13 17:16:05

我强烈推荐

H2

..。这是HSQLDB的“第二代”版本,由原作者之一完成。

H2

允许我们在不需要实际PostgreSQL数据库的情况下对DAO层进行单元测试,这是

太棒了

..。

有一个活跃的网群和邮件列表,作者Thomas Mueller对查询非常敏感(哈哈,这是个小双关语)。

票数 9
EN

Stack Overflow用户

发布于 2009-01-13 17:47:28

我不知道这是不是最快的选择,但我对此非常满意

H2

只要我用过它。它是由最初编写Hypersonic (后来成为HSQLDB)的同一个人编写的。

另一个据称非常快的选择是

Prevayler

..。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/439958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档