首页 / 知识
关于java:db4o的经验?
2023-04-12 19:48:00

db4o experiences?我目前正在尝试db4o(Java版本),我非常喜欢我所看到的。 但是我不禁想知道它在真实的实时(网络)环境中的性能如何。 是否有人可以分享有关运行db4o的经验(好坏)? 我们在大型客户端/服务器项目中运行DB40 .NET版本。 我们的经验是,您可能会获得比典型的关系数据库更好的性能。 但是,您实际上必须调整对象才能获得这种性能。例如,如果您有一个包含很多对象的列表,则这些列表的DB4O激活很慢。有许多方法可以解决此问题,例如,通过反转关系。 另一个痛苦是激活。当您从DB4O检索或删除对象时,缺省情况下它将激活整个对象树。例如,加载Foo将加载Foo.Bar.Baz.Bat等,直到没有剩余可加载的内容为止。从编程的角度来看这很好,但是性能会减慢对象中更多的嵌套。为了提高性能,您可以告诉DB4O激活多少个级别。如果您有很多对象,这将很耗时。 另一个痛苦的领域是文本搜索。 DB4O的文本搜索远比SQL全文索引慢得多。 (他们会在他们的网站上直接告诉您。)好消息是,在DB4O之上设置文本搜索引擎很容易。在我们的项目中,我们已经连接了Lucene.NET来索引所需的文本字段。 某些API似乎不起作用,例如GetField API在应用数据库升级中很有用。 (例如,您已重命名属性,并且想要升级数据库中的现有对象,则需要使用这些"反射" API来在数据库中查找对象。其他API,例如[Index]属性不要)不能在稳定的6.4版本中使用,而必须使用不是强类型的Configure()。Index(" someField")指定索引。 我们已经看到,性能会随着数据库的扩大而降低。我们现在有一个1GB的数据库,并且运行速度仍然很快,但不及开始使用小型数据库时的速度。 我们发现了另一个问题,如果该ID在数据库中不再存在,则Db4O.GetByID将关闭数据库。 我们发现本机查询语法(最自然的查询语言集成语法)远比不友好的SODA查询慢得多。因此,不要键入:
除了使用漂亮的查询代码外,您还必须执行一个丑陋的SODA查询,该查询基于字符串并且不是强类型的。 对于.NET人士,他们最近引入了LINQ-to-DB4O提供程序,该提供程序提供了迄今为止最好的语法。但是,尚待观察丑陋的SODA查询是否能达到性能。 对DB4O的支持一直不错:我们已经通过电话与他们进行了多次交谈,并获得了有用的信息。他们的用户论坛几乎一文不值,但是,几乎所有问题都没有得到解答。他们的JIRA错误跟踪器引起了很多关注,因此,如果您遇到了一个令人烦恼的错误,请将其归档到JIRA上通常会得到解决。 (我们已经修复了2个错误,另外一个以半确定的方式进行了修补。) 如果这一切还没有吓到您,那么让我说,尽管遇到了问题,但我们对DB4O感到非常满意。我们获得的性能使我们尝试过的一些O / RM框架大为失败。我推荐它。 更新时间:2015年7月请记住,这个答案写于2008年。尽管我很感谢大家的支持,但此后世界已经发生了变化,并且此信息可能不如撰写时可靠。 大多数本机查询可以并且可以高效地转换为幕后SODA查询,因此不会有所作为。使用NQ当然是首选,因为您仍处于强类型语言的领域。如果您在让NQ使用索引时遇到问题,请随时将您的问题发布到db4o论坛,我们将尽力帮助您。 戈兰 我遇到的主要问题是报告。似乎没有任何方法可以针对db4o数据源运行有效的报告。 犹大,听起来您没有使用透明激活,这是最新生产版本(7.4)的功能吗? 也许如果您指定了所使用的版本,那么可能还有其他问题已在最新版本中得到解决? |
最新内容
相关内容
python代码运行需要编译吗
python代码运行需要编译吗,代码,培训,做好,体系,平台,语言,机器码,目标,厨师,下次,有人在讨论Python代码是编译执行还是解释执行?这个问题还python怎么在cmd运行文件夹
python怎么在cmd运行文件夹,培训,路径,文件夹,文件,以上,程序,方法,更多,内容,python是一门高级测面向对象的程序设计语言。运行Python,可在python cmd中怎么运行python文件
python cmd中怎么运行python文件,培训,文件,路径,以上,程序,方法,更多,内容,运行Python,可在交互模式下运行,或者命令行中。命令行中运行的是pythonid函数如何运行
pythonid函数如何运行,培训,地址,代码,对象,函数,内存,类型,可能会,整数,字符串,id(object)功能:返回的是对象的“身份证号”,唯一且不变,但在不python怎样启动python程序运行
python怎样启动python程序运行,代码,环境,项目,工具,培训,业务,有限,程序,源文件,功能,执行Python程序的三种方式解释器——python/python3交python用哪个软件编写运行python
python用哪个软件编写运行python,软件,环境,代码,培训,服务,分析,工具,功能,程序,系列,编写和运行Python代码的软件叫IDE,也就是集成开发环境python程序怎么运行
python程序怎么运行,系统,代码,名称,培训,平台,语句,模式,结果,提示符,命令,安装完Python在Windows或Linux中的终端中直接输入python即进入Pypython怎么运行dir
python怎么运行dir,培训,信息,参数,方法,列表,属性,变量,模块,类型,范围内,python运行dir的方法:dir()函数不带参数时,返回当前范围内的变量、python如何运行python
python如何运行python,代码,培训,系统,语句,模式,结果,提示符,命令,以下,文件,Python的程序运行,需要Python解释器。安装完Python在Windows或Lpython网络编程及前端常见问题
python网络编程及前端常见问题,数据,服务,分析,培训,状态,前端,区别,服务器,常见问题,上面,当我们学习Python时,需要掌握的的知识有很多,除了有python代码中优化提速的小技巧分享
python代码中优化提速的小技巧分享,代码,培训,python常见面试题及答案分享
python常见面试题及答案分享,代码,管理,培训,数据,名称,系统,情况,企业,变量,模块,在经历一段时间的学习后,就可以去面试找工作了,一提到面试,虽