POJO读写效率:hibernate VS mongodb

本文通过JMH进行性能对比,测试了在单服单线程环境下,mongodb与hibernate在数据从数据库到POJO对象的读写效率。结果显示,尽管mongodb的IO读取效率高,但在复杂数据的反序列化过程中,其效率低于hibernate。通过分析hibernate的日志和反序列化过程,排除了hibernate使用缓存的影响。进一步研究发现,mongoTemplate的反序列化过程是导致其效率较低的主要原因。最后,使用mongo原生驱动进行性能对比,证实了mongodb在读写效率上的优势。
摘要由CSDN通过智能技术生成

mongodb的读写效率公认优于hibernate, 那本文主要是验证在单服单线程读写性能上,数据从数据库到工程中pojo对象的过程,mongodb的读写效率是否优于hibernate。

目录

一、性能对比

二、hiberbate分析

三、反序列化分析

四、mongo-java-driver

五、二次性能对比


一、性能对比

本文采用jmh进行性能对比,测试条件为15张表,分别创建pojo对象大小为1k、4k、10k的数据写入,比较hibernate和mongodb分别读取15张表对应大小数据的时间,即读取15次数据的平均时间。

备注:

  • 通过创建对象中map字段的大小和深度来控制document大小
  • 为贴切mongo bson数据入库,hibernate采用ObjectMapper,将数据序列化成byte数组入库

以下为jmh参数:

执行结果:

结果十分吃惊,在pojo对象的复杂度和大小变大的情况下,mongo的效率是低于hibernate的,但mongo的IO读取效率的确是更高的,那到底是为什么呢,总结了两个可能的原因

  1. hibernate中使用了缓存,减少了数据库IO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值