gpt4 book ai didi

java - 最快的 Java 可自由再分发数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:05 26 4
gpt4 key购买 nike

我正在为新的开源应用程序寻找最好的数据库软件。主要标准是它必须快如闪电,以便在数万个条目中进行搜索。理想情况下,它将完全基于 Java,但只需要一个 Java API 就可以了。我希望根据 GPL 获得许可,因此该项目必须与之兼容。到目前为止,SQLite 似乎是最普遍的解决方案,但我不想忽视其他可能更好的解决方案。

当我在互联网上搜索时,大多数结果似乎都是针对对象数据库的。我不关心数据库是基于对象的还是关系型的,认为我不关心它是“NoSQL”。我对 MySQL 有很多经验,但我并不害怕学习一种新的查询语言或界面,如果它更快的话。这将管理的主要数据类型是至少附加 20 个元数据字段的文件名;我希望有多个具有相同字段的数据集,如果能在数据库中存储一些应用程序首选项就好了。

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

最佳答案

最终这真的取决于您的应用程序。 SQLite 的设计并不像标准的客户端/服务器数据库(如 Oracle 和 MySQL)那样健壮。在 SQLite 的常见问题解答中,他们对这个主题说了以下内容:

However, client/server database engines (such as PostgreSQL, MySQL, or Oracle) usually support a higher level of concurrency and allow multiple processes to be writing to the same database at the same time. This is possible in a client/server database because there is always a single well-controlled server process available to coordinate access. If your application has a need for a lot of concurrency, then you should consider using a client/server database. But experience suggests that most applications need much less concurrency than their designers imagine.

据说 SQLite 非常快,但这又取决于您将如何使用它以及在什么平台上使用它。如果您在嵌入式设备上运行,您可能会发现与在常规桌面/服务器上运行时相比,性能存在显着差异,这就是为什么很难给出准确答案的原因。 SQlite 确实看到遵守标准客户端/服务器模型的显着性能提升。

您最好的选择是选择几个,例如 SQLite、PostgreSQL、MySQL,并通过运行一些模拟您将在应用程序中遇到的常见场景的测试来查看每个的性能影响。

关于java - 最快的 Java 可自由再分发数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com