【问题标题】:db4o and alternativesdb4o 和替代品
【发布时间】:2012-01-15 20:27:40
【问题描述】:

我有一个需要处理 10 到 100 千兆字节数据的 Java 应用程序。任何 DBMS 都需要嵌入。我们目前有一个缓慢、脆弱和复杂的 db4o 解决方案。我承认我们的许多伤口都是自己造成的。

让我们假设当前的 db4o 实现是无法挽救的。人们会建议继续使用 db4o(并且在使用时更加小心)吗?或者还有其他您可以积极推荐的嵌入式数据库吗?

感谢您的反馈。

【问题讨论】:

  • 有一大堆嵌入式数据库。 OODB 的数量要少得多,这就是 db4o。您需要 OODB 吗?
  • 我被阻抗匹配概念所吸引,但它更像是“拥有”而不是“必须拥有”。可靠性和性能在天平中的权重更大。
  • 好吧,如果不知道您正在寻找什么样的性能特征、如何使用数据等,很难提出任何好的建议——我建议您做一些基准测试并查看适用于您的特定用例的方法。
  • 很公平。我的情况是,在分析我的应用程序时,我发现 CPU 热点由 db4o 查询主导。在正常使用中,数据库基本上可以是只读的。该应用程序是一个模拟,存储的数据代表各种物理属性——数据的组织不需要特别复杂,但数据集可以任意大。我相信我们对 db4o 的使用可以得到很大的改进,但这将需要大量的工作 - 与从头开始相比。我只是想看看可能存在哪些可行的替代方案。
  • 我想您在 db4o 查询中使用了索引,对吧?

标签: java db4o


【解决方案1】:

db4o 不是为 10 和 100 千兆字节而设计的。 db4o 数据库的绝对最大值是256 GB when setting the block-size to the allowed maximum。但是,我希望性能早点崩溃。

您存储什么样的数据?你的数据是什么形状的?你的性能特点是什么?没有它就很难推荐合适的数据库。

无论如何,在 Java-Space 中,我使用 H2 数据库获得了很好的体验。它是一个很棒的关系数据库。但我无法判断您的东西是否适合关系数据库。

我还听说过很多关于 Neo4J(图形数据库)的好消息。就我个人而言,我还没有使用它,但是当您的数据更加面向图形时,我会调查一下。

【讨论】:

  • 感谢您的信息。在我们说话的时候,我正在学习这些东西,因此提出了一些不具体的问题。我试图对 db4o 公平,不要让我目前对我们的实施的不满过度地毒化我的思想反对它。不过,我会更愿意了解一些替代方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 2020-02-28
  • 2021-11-08
  • 2017-08-15
相关资源
最近更新 更多