用于大型数据集的嵌入式Java数据库

时间:2012-06-30 15:06:33

标签: java sql sqlite hsqldb h2

我想将基于PHP / MySQL的客户端/服务器应用程序移植到一个用Java编写的独立桌面应用程序中。数据库已经发展得相当大,有几个表有数十万行。我希望某些表格可以增加到超过一百万个条目。

哪种嵌入式数据库最能解决这个问题? HSQLDB和Sqlite似乎是明显的选择,尽管我猜也有其他的选择。我的主要优先事项是能够有效地对大量数据执行查询(this thread似乎确认Sqlite可以处理此问题)以及我可以轻松地从MySQL导入旧数据(我记得HSQLDB有点痛苦)为此)。

注意:我知道之前已经发布了比较嵌入式数据库的类似问题(例如herehere),但由于我的优先级与考虑大数据迁移的大多数应用程序有所不同,我认为它证明了一个新问题。

2 个答案:

答案 0 :(得分:3)

随着时间的推移,您将担心的问题是,您是否会让内存不足的用户无法处理嵌入式数据库中的数百万行。

如果每个人都拥有64位操作系统和8GB或更多内存,那么您将会处于清晰状态。

我同意只要有足够的内存,SQLLite或Hypersonic就可以处理它。我想知道在记忆力不足的情况下,每个人会做些什么。

您当然可以选择在服务器模式下运行Hypersonic并让它将数据保存在磁盘上。这可能是一个有吸引力的替代方案,尤其是当SSD变得普遍时。您可以保持不需要数据库安装的便利性,并且仍然可以管理大型数据集而不会耗尽可用的RAM。

答案 1 :(得分:3)

最新版本的HSQLDB用于具有千兆字节数据的商业应用程序。 HSQLDB的持久性机制已经过全面测试,其系统使用fsync可以避免数据丢失。查询优化已得到改进。使用HSQLDB SqlTool

现在可以非常轻松地从CSV或SQL转储导入数据
相关问题