DB4O可扩展性

我正在寻找有关DB4O对象数据库的信息。 我知道它有客户端/服务器模式,但我不知道它是多么可扩展。 我是对象数据库想法的大爱好者,但仍无法在我的任何项目中找到合适的OODB。 所以我的问题是:

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

谢谢

PS我对C#版感兴趣。

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

我只想补充几点意见:

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

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

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

答案很长:这取决于。

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

我可以想到的最好的建议已经在评论中说过了:不要把任何答案当作权威/可靠(甚至我的;-)); 使用对象模型/访问模式尽可能接近您的实际应用程序进行自己的性能测量并得出结论。

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

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

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