首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >db4o体验?

db4o体验?
EN

Stack Overflow用户
提问于 2008-08-21 21:12:02
回答 4查看 6.7K关注 0票数 32

我目前正在试用db4o ( java版),我非常喜欢我所看到的。但我不禁想知道它在真实的(网络)环境中的表现如何。有没有人有什么运行db4o的经验(好的或者不好的)来分享?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-08-23 19:03:19

我们在一个大型客户端/服务器项目中运行DB40 .NET版本。

我们的经验是,与典型的关系数据库相比,您可以获得更好的性能。

然而,你真的需要调整你的对象来获得这种性能。例如,如果您有一个包含大量对象的列表,则这些列表的DB4O激活速度会很慢。有许多方法可以绕过这个问题,例如,通过颠倒关系。

另一个痛苦是激活。从DB4O检索或删除对象时,默认情况下将激活整个对象树。例如,加载Foo将加载Foo.Bar.Baz.Bat,等等,直到没有剩余可加载的内容。虽然从编程的角度来看这很好,但在对象中嵌套越多,性能就会越慢。要提高性能,您可以告诉DB4O要激活多少层。如果你有很多对象,这是很耗时的。

另一个痛苦的领域是文本搜索。DB4O的文本搜索比SQL全文索引慢得多。(他们会在他们的网站上直接告诉你。)好消息是,在DB4O上设置文本搜索引擎很容易。在我们的项目中,我们连接了Lucene.NET来索引我们想要的文本字段。

有些API似乎不起作用,例如在应用数据库升级时有用的GetField API。(例如,您已经重命名了一个属性,并且想要升级数据库中的现有对象,则需要使用这些“反射”API来查找数据库中的对象。其他.Index,比如Index属性,在稳定的6.4版本中不起作用,您必须使用Configure()API(“someField”)来指定索引,该API不是强类型的。

我们已经看到,数据库越大,性能就越差。我们现在有一个1 1GB的数据库,速度仍然很快,但没有我们刚开始使用一个小数据库时那么快。

我们发现了另一个问题,如果该ID在数据库中不再存在,Db4O.GetByID将关闭数据库。

我们发现原生查询语法(最自然的、语言集成的查询语法)比不太友好的SODA查询慢得多。因此,与其键入:

代码语言:javascript
运行
复制
// C# syntax for "Find all MyFoos with Bar == 23".
// (Note the Java syntax is more verbose using the Predicate class.)
IList<MyFoo> results = db4o.Query<MyFoo>(input => input.Bar == 23);

您必须使用基于字符串且不是强类型丑陋的SODA查询,而不是很好的查询代码。

对于.NET人员来说,他们最近引入了一个LINQtoDB4O提供程序,它提供了迄今为止最好的语法。然而,性能是否会达到丑陋的SODA查询还有待观察。

DB4O的支持一直很好:我们已经和他们通了几次电话,并收到了有用的信息。他们的用户论坛几乎一文不值,然而,几乎所有的问题都没有答案。他们的JIRA bug追踪器受到了很多关注,所以如果你有一个纠缠不休的bug,把它归档到JIRA上就会得到修复。(我们已经修复了两个bug,另一个已经以半成功的方式完成了修补。)

如果所有这些都没有吓跑你,让我说我们对DB4O非常满意,尽管我们遇到了很多问题。我们所获得的性能让我们尝试过的一些O/RM框架大吃一惊。我推荐它。

更新2015年7月请记住,这个答案是在2008年写的。虽然我很感谢大家的好评,但从那时起,世界已经发生了变化,这些信息可能不像写它时那么可靠了。

票数 56
EN

Stack Overflow用户

发布于 2008-09-28 10:10:36

大多数原生查询可以在幕后有效地转换为SODA查询,因此这不会有什么不同。使用NQ当然是首选,因为您仍然停留在强类型语言的领域中。如果您在让NQ使用索引时遇到问题,请随时将您的问题发布到db4o forums,我们将尽力帮助您解决问题。

Goran

票数 3
EN

Stack Overflow用户

发布于 2008-09-18 01:12:17

我遇到的主要问题是报告。似乎没有任何方法可以针对db4o数据源运行有效的报告。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档