Java集合与内存数据库性能比较

10

我不确定是否应该使用Java集合或一些内存数据库(如H2或HSQLDB - 它们可能是最快的)。我需要良好的性能结果 - 将有数百个对象/行,不会执行任何JOIN或更复杂的查询。

我真的在考虑使用内存数据库,因为Java堆的大小受限 - 我正在处理的对象可能相当大,并且还将有许多这样的对象(正如我之前提到的,将有数百个)

你认为针对大量数据使用内存数据库是一个好主意吗?


2
用现代术语来说,数百个对象并不算多。当你说这些对象会很大时——有多大? - Sheriff
3
成百上千的对象是可笑的,即使每个对象有一百个字段。此外,内存必须来自某个地方,而数据库很可能会增加一些开销。 - user395760
好的,几百个可能太多了,简单来说,就是可能有很多很多的对象。 - Igor
3个回答

3

尝试使用集合(collections)来实现。如果你发现问题,你仍然可以切换。这完全是一个抽象实现的问题,因此你的算法不会指望其中一个。 (又一篇“早期优化是邪恶的”演讲)


3
数百个大小为10 KB的对象仍然只有几兆字节。我的建议是保持简单。数十万个大小为1 KB的对象仍然可以轻松容纳在32位JVM中。
除非数据量达到几GB,否则不要使用内存数据库。如果你有数百GB的数据,你唯一的选择就是使用某种数据库。
免责声明:我使用内存数据库,甚至写过一两个。

2

正如其他人所说,“数百”并不算多,现在你甚至声称可能比“数百”还要少。如果堆大小是个问题,你可以增加JVM堆大小


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接