繁体   English   中英

MongoDB的Java ORM开销是多少

[英]What the overhead of Java ORM for MongoDB

使用Java ORM for MongoDB的开销是多少,或者我们在基本驱动程序级别读取或写入更好?

我们将根据我们的要求添加Mongo DB。

java有几种java ORM映射工具
-morphia
-spring数据
- 其他人

Morphia上一版本在一年多前发布
但是Spring数据得到了积极维护。 如果我即将开始,应该使用哪一个,

使用ORM会降低性能,但会加快开发速度。 这里有一个折衷。

对于ORM工具,Morphia是最稳定的。 在这里你可以找到Morphia和Basic Mongo Driver之间的比较。

Morphia似乎是最合适的,因为它具有最多的功能和活跃的社区。 请参阅此链接进行比较: MongoDB的Morphia,Mongo4j和Spring数据如何比较?

一般来说,这里有很多东西需要提及。 提出基准测试非常困难,因为如果不测试MongoDB设置,就无法真正测试性能。 因此,人们几乎可以调整和调整环境以提供所需的结果。

除此之外,您必须区分读写性能。 特别是写入受到使用的WriteConcern严重影响。 因此,什么可能是50%的开销WriteConcern.NONE方案可以很容易地向下转向不足5%,其中WriteConcern.SAFE

是的,任何ODM实现肯定都有开销,因为Object < - > DBObject映射必须通过反射检查对象get和set值。 因此,关键点IMHO是能够插入您可能希望为性能关键对象提供的自定义手动编码转换器。 对于Spring Data,只需注册一个自定义的EntityInstantiator ,它可以执行new Person(…)而不是让默认的一个人做反射魔术,从而大大提高了性能。

Spring Data团队有一个构建设置OTS MongoDB实例的构建权重性能,用于针对不同的WriteConcern进行写入,并通过普通驱动程序, MongoTemplate和存储库抽象进行读取。 这些数字与一粒盐被视为他们有时会显示存储库中读取数据比 ,因为它几乎是在模板之上的一层被通过某种手段基础设施的影响模板速度较快,但并没有真正的添加任何缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM