JPA和mybatis的CRUD比较

发现网上有不少帖子说JPA速度慢,也有不少帖子反驳,不知道信那个干脆自己测试一下

测试所用的SpringBoot版本:1.4.3.RELEASE

测试所用的数据库:MySQL

  1. 插入速度比较(此时的数据表中基本为空)

    • JPA插入一条数据
      一次请求 插入一条数据,用时75ms,之后每次请求 插入一条数据,用时在3-5ms
      一次请求 插入一万条数据(一万个save),用时 45590ms
    • mybatis插入一条数据
      一次请求 插入一条数据,用时377ms,之后每次请求 插入一条数据,用时在2-4ms
      一次请求 插入一万条数据(一万个save),用时 7846ms
  2. 查询速度的比较(此时数据表中有1万条数据)

    • JPA查询数据(JPA的findByTitle)
      一次查询,查询结果为400条数据,用时274ms,之后10次连续的查询,平均用时8ms/次
    • mybatis查询数据
      一次查询,查询结果为400条数据,用时528ms,之后10次连续的查询,平均用时21ms/次
  3. 查询20万数据量速度的比较

    • JPA查询数据(JPA的findByTitle)
      一次查询,查询结果为400条数据,用时452ms,之后10次连续的查询,平均用时89ms/次
    • mybatis查询数据
      一次查询,查询结果为400条数据,用时538ms,之后10次连续的查询,平均用时115ms/次
  4. 查询百万数据量速度的比较(此时数据表中有108万条数据)

    • JPA查询数据(JPA的findByTitle)
      一次查询,查询结果为400条数据,用时892ms,之后10次连续的查询,平均用时492ms/次
    • mybatis查询数据
      一次查询,查询结果为400条数据,用时985ms,之后10次连续的查询,平均用时483ms/次
  5. 分页查询百万数据量速度的比较(此时数据表中有108万条数据)

    • JPA分页查询数据(自定义查询语句)
      一次查询,每页查询结果为50条数据,用时96ms,之后10次连续的查询,平均用时8ms/次
  • JPA分页查询数据(Pageable查询)
    一次查询,每页查询结果为50条数据,用时429ms,之后10次连续的查询,平均用时164ms/次
  • mybatis查询数据
    一次查询,每页查询结果为50条数据,用时506ms,之后10次连续的查询,平均用时6ms/次
  1. 删除数据比较(此时数据表中有108万条数据)
  • JPA删除一条数据(deteteBy)
    第一次删除用时266ms,之后每次删除平均用时2ms
  • JPA删除一天数据(自定义删除)
    第一次删除用时68ms,之后每次删除平均用时1ms
  • mybatis删除一条数据
    第一次删除用时36ms,之后每次删除平均用时1ms
  1. 更新数据的比较(此时数据表中有108万条数据)
  • JPA更新一条数据
    第一次更新一条数据(根据主键id更新),用时62ms,之后每次更新平均2ms/次
  • mybatis更新一条数据
    第一次更新一条数据(根据主键id更新),用时40ms,之后每次更新平均2ms/次
  1. 千万级查询的比较(此时数据表中有1100万条数据)
  • JPA查询一条数据(findById)
    第一次查询一条数据(根据主键id查询),用时285ms,之后每次查询平均2ms/次
  • JPA查询一条数据(自定义查询)
    第一次查询一条数据(根据主键id查询),用时87ms,之后每次查询平均2ms/次
  • mybatis查询一条数据
    第一次查询一条数据(根据主键id查询),用时377ms,之后每次查询平均2ms/次

测试数据仅供参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,775评论 0 4
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • 本文中我们介绍并比较两种最流行的开源持久框架:iBATIS和Hibernate,我们还会讨论到Java Persi...
    大同若鱼阅读 4,370评论 4 27
  • Let It Rain 专辑:Open歌手:Gotthard 今天跟组长他们中午一起吃饭的时候,XX问了请女孩吃饭...
    板必胜阅读 202评论 0 0
  • 我跟自己说, 你曾爱写诗, 将思绪拨弄琴弦, 却沉默不语; 你曾爱着她, 把心思写与文字, 却讷于言辞。 我跟自己...
    你说那是什么阅读 118评论 0 0