【发布时间】:2011-02-13 14:10:17
【问题描述】:
以下哪些数据库最适合大型桌面应用程序:Firebird、JavaDB、hsqldb? 我需要性能、易用性和完全免费的许可证。
【问题讨论】:
-
这个问题也有一些很好的讨论:stackoverflow.com/questions/41233/java-and-sqlite
以下哪些数据库最适合大型桌面应用程序:Firebird、JavaDB、hsqldb? 我需要性能、易用性和完全免费的许可证。
【问题讨论】:
如果您正在寻找可嵌入的数据库,我的建议是H2(代表 Hypersonic 2,由 HSQLDB 的作者(重新)编写)。请参阅detailed comparison of features 和performances。
使用 100% Java 数据库将允许在同一进程中运行它,并使 IMO 的事情变得更容易。
【讨论】:
让我在 Postgres 上推荐你(http://www.postgresql.org/ ),这是我所知道的最好的免费软件数据库之一。
我在之前的项目中使用过这个数据库,其中我们在模式中保存了大约 20 个表,最大的表有大约 100,000 行,总数据量并不大。
这个项目在生产中运行了 2 年多,没有任何特殊问题。
谢伊
【讨论】:
我的建议是 H2。我最近迁移了一个数据库(来自 MS SQL 服务器),其中包括 2 个较大的表,每个表托管 >200 万行。首先我尝试了 Derby,但遇到了问题(不仅仅是性能) - 然后我切换到 H2 并成功迁移了所有内容。
【讨论】:
我认为为此使用嵌入式数据库会更好。 HSQLDB 或 H2 可以工作,SQLite 也可以。 SQLite 在 Java 世界之外非常流行(例如,它被 Mozilla 项目使用)。我对 JavaDB 不熟悉,因此无法谈论它的功能。
众所周知,SQLite 非常快。
【讨论】:
Firebird 是非常好的数据库,尤其适用于桌面应用程序
有很好的java驱动。
【讨论】:
取决于要求和数据量。我最后的选择是 MySQL,它很舒服(swing 应用)
【讨论】:
我会选择 不是 Java 特定的 DBMS。有一天,您可能希望与 C++ 或 .NET 应用程序共享您的数据。如果它不需要是客户端/服务器,请考虑 SQLite 或 H2。如果确实如此,请考虑 Postgres。所有这些都有 ODBC 驱动程序和/或 Java 以外的特定语言的驱动程序。
【讨论】: