养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

批量update如何优化

时间:2024-10-04 07:19:37

今天小编给大家带来的是批量update如何优化,希望能帮助到大家!

工具/原料

PC

方法/步骤

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

批量update如何优化

2、ENDWHEREidIN(1,2,3)UpdatemyTabl娣定撰钠eSETmyField=CASEi颊俄岿髭dWHEN1THEN'value1'WHEN2THEN'value2'WHEN3THEN'value3'ENDWHEREidIN(1,2,3)具体的MyBatis代码如下:[html]viewplaincopy<updateid="updatePrice"parameterType="java.util.List">UPDATEt_priceSETprice=CASEcode<foreachcollection="list"item="item">

批量update如何优化

3、WHEN#{item.code}THEN#{item.pric娣定撰钠e}</foreach>END友腆取缜WHEREcodein<foreachcollection="list"item="item"open="("separator=","close=")">#{item.code}</foreach></update><updateid="updatePrice"parameterType="java.util.List">UPDATEt_price

批量update如何优化

4、SETprice=CASEcode<foreachcollection="list"item="item">WHEN#{item.code}THEN#{item.price}</foreach>ENDWHEREcodein<foreachcollection="list"item="item"open="("separator=","close=")">#{item.code}</foreach></update>

批量update如何优化

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

批量update如何优化

© 一点知识