2012-06-30 64 views
2

我想将基于PHP/MySQL的客户端/服务器应用程序移植为以Java编写的独立桌面应用程序。数据库已经变得相当大,有数十万行的表格。我预计这些表可能会增长到超过一百万条。用于大型数据集的嵌入式Java数据库

什么嵌入式数据库最能处理这个问题? HSQLDB和Sqlite似乎是很明显的选择,尽管我猜测其他人也是如此。我的主要优先事项是能够有效地对大量数据执行查询(this thread似乎证实了Sqlite可以处理此问题)以及我可以轻松导入MySQL中的旧数据(我记得HSQLDB对此很痛苦)。

注:据我所知,比较嵌入式数据库类似的问题之前已经发布(例如herehere),但由于我的工作重点从考虑到大型数据迁移我认为它合理的新问题大多数应用程序有所不同。

回答

3

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

当每个人都拥有64位操作系统和8GB以上的内存时,您将会清楚地了解。

我同意只要有足够的内存,SQLLite或Hypersonic就可以处理它。我很想知道,对于那些记忆力变得稀缺的情况,每个人会做什么。

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

3

HSQLDB的最新版本用于商业应用程序的千兆字节数据。 HSQLDB的持久性机制已经过全面测试,它的系统使用fsync可以避免数据丢失。查询优化已改进。使用HSQLDB SqlTool现在很容易从CSV或SQL转储数据导入

+0

看起来您拥有专业的hsqldb,fredt附件。我不担心,但很高兴知道这里所表达的观点所产生的影响。 – duffymo

+0

是的,我的个人资料包含hsqldb.org网站地址。 – fredt

+0

感谢您的输入! –