繁体   English   中英

最快的Java自由可再发行数据库

[英]Fastest Freely Redistributable Database for Java

我正在为新的开源应用程序寻找最佳的数据库软件。 主要标准是要快速搜索成千上万的条目。 理想情况下,它完全基于Java,但是只需具有Java API也可以。 我正在寻求使用GPL许可,因此该项目必须与此兼容。 到目前为止,SQLite似乎是最普遍的解决方案,但是如果它可以变得更好,我不想忽略其他事情。

当我搜索一般的Internet时,大多数结果似乎是针对对象数据库的。 我不在乎,如果数据库是基于对象或关系,我不认为我不在乎,如果它是“NoSQL的”。 我在MySQL方面有丰富的经验,但是如果以这种方式更快,我不惧怕学习一种新的查询语言或界面。 这将要管理的主要数据类型是文件名,至少附加20个元数据字段。 我想拥有多个具有相同字段的数据集,并且最好在数据库中存储一些应用程序首选项。

我从一些答复中看到,我(以前)在标题中使用“嵌入式”可能会造成混淆。 我想澄清一下,我的意思是“嵌入到应用程序中并重新分发”,而不是“在嵌入式设备上使用”。 该应用程序当前针对的是全尺寸计算机,尽管“理想情况下完全基于Java”的一个原因是创建Android版本的梦想。

最终,这实际上取决于您的应用程序。 SQLite的设计不像Oracle和MySQL这样的标准客户端/服务器数据库那样强大。 他们从SQLite的常见问题中对这个话题说了以下几点:

但是,客户端/服务器数据库引擎(例如PostgreSQL,MySQL或Oracle)通常支持更高级别的并发性,并允许多个进程同时写入同一数据库。 在客户端/服务器数据库中,这是可能的,因为始终只有一个受良好控制的服务器进程可用于协调访问。 如果您的应用程序需要大量并发,那么您应该考虑使用客户端/服务器数据库。 但是经验表明,大多数应用程序所需的并发性比其设计人员想象的要少得多。

话虽这么说,SQLite的运行速度非常快,但是这又取决于您将如何使用它以及所基于的平台。 如果您在嵌入式设备上运行,则与在常规台式机/服务器上运行时相比,可能会看到明显的性能差异,这就是为什么很难给出确切答案的原因。 SQlite确实由于遵守标准的客户端\\服务器模型而获得了显着的性能提升。

最好的选择是选择一些,例如SQLite,PostgreSQL,MySQL,并通过运行一些测试来模拟每种应用程序的性能,以了解每种性能的影响。

看一下http://www.polepos.org/,有一个基准表明http://www.db4o.com/是最快的嵌入式数据库之一。

我亲自与db4o一起工作,它非常好并且在GPL下获得许可,因此它可能适合您的需求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM