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



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

什么嵌入式数据库最能解决这个问题?HSQLDB和Sqlite似乎是显而易见的选择,尽管我猜还有其他选择。我的主要优先事项是能够有效地对大量数据执行查询(这个线程似乎证实了 Sqlite 可以处理这个问题)以及我可以轻松地从 MySQL 导入旧数据(我记得 HSQLDB 对此有点痛苦)。

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

随着时间的推移,您将担心的问题将变得不那么重要,即您是否会有内存不足的用户来处理嵌入式数据库中的数百万行。

当每个人都拥有 64 位操作系统和 8GB 或更多的 RAM 时,您就会清楚。

我同意SQLLite或Hypersonic可以处理它,只要有足够的内存。 我想知道每个人在记忆变得稀缺的情况下会怎么做。

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

最新版本的 HSQLDB 用于具有 GB 数据的商业应用程序。HSQLDB 的持久性机制已经过全面测试,其系统地使用 fsync 避免了数据丢失。查询优化已得到改进。现在,使用HSQLDB SqlTool从CSV或SQL转储导入数据非常容易。

最新更新