批量update如何优化

 时间:2024-10-13 13:43:46

1、对MySQL中的表进行批量update的时候,如果每个记录用一个update语句,5000条记录的话,大概需要30秒钟。下面采用的case when方法可以把5000条update拼成一条:[plain]view plaincopyUpdatemyTableSETmyField=CASEidWHEN1THEN'value1'WHEN2THEN'value2'WHEN3THEN'value3'

批量update如何优化

2、 ENDWHEREidIN(1,2,3)Update myTableSET myField = CASE i颊俄岿髭dWHEN 1 THEN 'value1'WHEN 2 THEN 'value2'WHEN 3 THEN 'value3'ENDWHERE id IN (1,2,3)具体的MyBatis代码如下:[html]view plaincopy<updateid="updatePrice"parameterType="java.util.List">UPDATEt_priceSETprice=CASEcode<foreachcollection="list"item="item">

批量update如何优化

3、 WHEN#{item.code}THEN#{item.price}</foreach>ENDWHEREcodein<foreachcollection="list"item="item"open="("separator=","close=")">#{item.code}</foreach></update><update id="updatePrice" parameterType="java.util.List">UPDATE t_price

批量update如何优化

4、SET price = CASE code<foreach collection="list" item="item">WHEN #{item.code} THEN #{item.price}</foreach>ENDWHEREcode in<foreach collection="list" item="item" open="(" separator="," close=")">#{item.code}</foreach></update>

批量update如何优化

5、实际上,为了避免一条语句超过MySQL语句的最大长度限制,一般会把5000个数据分成几组,每组拼凑一条语句。因此,Java代码调用MyBatis的dao之前需要拆分被update的List,以避免sql语句超长。

批量update如何优化
  • 花小猪省钱卡怎么买
  • 堡垒之夜手游什么时候上线
  • 2T移动硬盘在XP电脑上不识别
  • 周敦颐是哪个朝代的
  • 拒执罪如何立案
  • 热门搜索
    嗜怎么读 脖子上有个包块怎么回事 静脉曲张怎么治疗 愈怎么读 茶叶蛋怎么煮 秋葵怎么做 朴怎么读 自行车变速器怎么调 电话呼叫转移怎么设置 墙壁发霉怎么处理