2

我正在寻找有关 DB4O 对象数据库的信息。我知道它有客户端/服务器模式,但我不知道它的可扩展性如何。我非常喜欢对象数据库的想法,但仍然找不到合适的 OODB 用于我的任何项目。所以我的问题是:

  • 我很感兴趣是否有人在多客户端环境中部署了 DB4O,与 RDBMS 相比,它的性能如何?
  • 迄今为止是否有任何 Web 应用程序由 DB4O 提供支持?
  • 我可以使用 DB4O 作为 SQL Server(至少是 SQL Express)的替代品吗?
  • DB4O 在实践中可以支持多少并发客户端?
  • 数据库大小增加时性能会降低吗?

谢谢

PS 我对 C# 版本感兴趣。

4

2 回答 2

4

我大体上同意 Vagaus 和其他评论。db4o 在某些情况下可以替换,但这确实取决于您的场景。对象数据库只是一种工具,并不能满足所有需求。您可能应该尝试一下。

我只想添加一些评论:

  • 多客户端环境:db4o 的重点是嵌入式模式。客户端/服务器模式更像是一个插件,而不是真正的默认模式。db4o 期望客户端和服务器是“强”耦合的:客户端和服务器需要相同的类,否则会发生灾难。此外,db4o 服务器不支持多数据库、用户管理等内容。
  • SQL Server 的替代品(至少是 SQL Express):当然不是大型 SQL Server。需要比 db4o 更强大的对象数据库。db4o 更像是 express 版本。
  • 当数据库大小增加时性能是否会降低:是的,就像所有数据库一样。db4o 是为小型数据库构建的。大约 2-16 GB 对于 db4o 来说是一个不错的大小。
  • 并发控制:db4o 对客户端-服务器模式的并发控制非常有限。它只支持相对较弱的“Read Committed”隔离模式。

如前所述,db4o 是为嵌入式场景设计的。对于更大的客户端服务器数据库,您可能需要查看其他(对象)数据库。

于 2011-03-03T09:14:45.680 回答
3

简短回答:是的,db4o 可以用作 RDBM 的替代品

长答案:这取决于。

我真的不相信“一刀切”,所以恕我直言,这取决于您的对象模型、访问模式、机器配置、数据库调整、预期增长率、索引数量等。

我能想到的最好的建议已经在评论中说了:不要将任何答案视为确定/可靠(即使是我的;-));使用尽可能接近实际应用程序的对象模型/访问模式进行自己的性能测量并得出结论。

话虽如此,如果您想查看一些基准测试结果,可以查看polepos结果。但是请注意,这些结果是基于旧版本的 db4o(6.4 而不是当前版本 7.12)——我们希望在不久的将来发布新的结果。

我确信有使用 db4o 的 web 项目(例如jease),但我不确定具体如何。

即使 db4o 性能不能满足您的要求,我也建议您不要放弃 OODB(通常它会使您的实时开发变得更容易)。在这种情况下,请检查其他选项(例如VOD - 来自同一供应商)。

于 2011-03-03T05:15:59.417 回答