2

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

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

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

4

2 回答 2

3

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

当每个人都拥有 64 位操作系统和 8GB 或更多 RAM 时,你就会明白了。

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

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

于 2012-06-30T15:13:35.237 回答
3

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

于 2012-06-30T16:03:24.227 回答