首页 > 数据库技术 > 详细

Mysql批量插入更新

时间:2019-12-27 10:41:41      阅读:73      评论:0      收藏:0      [点我收藏+]

批量插入,使用MyBatis批量语法:

<insert id="insertBatch" parameterType="list">
    insert into tbl1 (a, b, c)
    values
    <foreach collection="list" item="obj" separator=",">
        (#{obj.a,jdbcType=TIMESTAMP}, #{obj.b,jdbcType=VARCHAR}, #{obj.c,jdbcType=VARCHAR})
    </foreach>
</insert>

使用临时表进行批量更新,其中的a,b作为唯一索引:

insert into tbl1  (a, b , c,d,e)
SELECT a, b ,c,d,e from tbl1_temp s 
on DUPLICATE key update c = s.c, d = s.d, e=s.e

3万条记录,第一次插入的时候1.5秒,第二次更新的时候2.5秒;

REPLACE into tbl1  (a, b , c,d,e)
SELECT a, b ,c,d,e from tbl1_temp s 

3万条记录,第一次插入的时候2.5秒,第二次更新的时候4.5秒;

REPLACE的时候会把记录删除重新插入,自增主键可以看出变化;

Mysql批量插入更新

原文:https://www.cnblogs.com/stono/p/12105832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!