mongodb的读写效率公认优于hibernate, 那本文主要是验证在单服单线程读写性能上,数据从数据库到工程中pojo对象的过程,mongodb的读写效率是否优于hibernate。
目录
一、性能对比
本文采用jmh进行性能对比,测试条件为15张表,分别创建pojo对象大小为1k、4k、10k的数据写入,比较hibernate和mongodb分别读取15张表对应大小数据的时间,即读取15次数据的平均时间。
备注:
- 通过创建对象中map字段的大小和深度来控制document大小
- 为贴切mongo bson数据入库,hibernate采用ObjectMapper,将数据序列化成byte数组入库
以下为jmh参数:
执行结果:
结果十分吃惊,在pojo对象的复杂度和大小变大的情况下,mongo的效率是低于hibernate的,但mongo的IO读取效率的确是更高的,那到底是为什么呢,总结了两个可能的原因
- hibernate中使用了缓存,减少了数据库IO