`
houlinyan
  • 浏览: 147745 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

mybatis 批量insert和普通insert的区别

 
阅读更多

有一个导入黑名单的需求,由于量比较大,所以先采用批量insert。拿批量insert 10000条做测试。

普通的insert 

<insert id="insert" parameterType="com.qiyi.zhibo.domain.QiyiZhiboBlackUser" >
  insert IGNORE into qiyi_zhibo_black_user (uid, create_time, operator
    )
  values (#{uid,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=INTEGER}
    )
</insert>

 每秒1000条左右。

 

批量insert:

<insert id="batchInsert" parameterType="java.util.List" >
  insert IGNORE into qiyi_zhibo_black_user (uid, create_time, operator)
  VALUES
  <foreach collection="list" item="item" index="index" separator="," >
    (#{item.uid,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.operator,jdbcType=INTEGER}
    )
  </foreach>

</insert>

竟然每秒钟只有几条,好奇怪,把mybatis的debug日志打印出来,他会把10000条记录,分成多个sql,每个sql 批量插入255条数据(每一个sql的插入条数还不能,抽样算的条数,104,254,255都有,有点搞不懂,有空了看下代码)。

所以,暂时放弃使用批量,还是一条一条查吧,先把问题记在这里,有时间拜读下源码,看看问题出在哪里。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics