MYSQL批量更新效率比较
批量更新比较常用的方法比较
一 、 第一种方法,通过接收传进来的参数list进行循环着组装sql 注意mysql链接需要开启加上 &allowMultiQueries=true
二、第二种方法、用ON DUPLICATE KEY UPDATE
更新数据 ON DUPLICATE KEY UPDATE耗时时间 for循环耗时时间
50000 8846ms 21828ms
100000 12689ms 38921ms
300000 75624ms 136254ms
sql语句for循环效率其实相当高的,只不过最后update语句比较多,量大了有可能造成sql阻塞
duplicate key update可以看出来比for更快,公司一般都禁止使用replace into和INSERT INTO … ON DUPLICATE KEY UPDATE,这种sql有可能会造成数据丢失和主从上表的自增id值不一致。注意 on duplicate key update 后面 必须跟上主键id,value里面是数据库字段。