中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

非模板網(wǎng)站長春網(wǎng)站優(yōu)化團(tuán)隊

非模板網(wǎng)站,長春網(wǎng)站優(yōu)化團(tuán)隊,關(guān)鍵詞優(yōu)化的發(fā)展趨勢,微信推廣平臺哪家好工作中遇到批量更新的場景其實是比較常見的。 但是該如何正確的進(jìn)行批量UPDATE,很多時候往往有點頭大。 這里列2種可用的方式,供選擇(請選擇方式一,手動狗頭。)。 如果使用了MyBatis增強(qiáng)組件MyBatisPlus 如果使用了MyBatisPlus,…

工作中遇到批量更新的場景其實是比較常見的。
但是該如何正確的進(jìn)行批量UPDATE,很多時候往往有點頭大。
這里列2種可用的方式,供選擇(請選擇方式一,手動狗頭。)。

如果使用了MyBatis增強(qiáng)組件MyBatisPlus

如果使用了MyBatisPlus,可以參考官網(wǎng)給出的解決方式(updateBatchById),或者自己查一下。


批量UPDATE方式一:SQL內(nèi)foreach

舉個??

<update id="updateUserForBatch" parameterType="com.bees.srx.entity.UserEntity"><foreach collection="list" item="entity" separator=";">UPDATE sys_userSET password=#{entity.password},age=#{entity.age}<where>id = #{entity.id}</where></foreach>
</update>

這樣寫,肯定比 在業(yè)務(wù)方法中for循環(huán)單條update的效率是要高的。
但是如果遇到大批量的更新動作,可能也會產(chǎn)生效率低下的問題。
原因是SQL內(nèi)的foreach本質(zhì)上還是循環(huán)插入每一條數(shù)據(jù),會產(chǎn)生 list.size() 個單條插入的獨立SQL語句,每一條 UPDATE 語句都會被單獨發(fā)送到數(shù)據(jù)庫服務(wù)器執(zhí)行。
這意味著如果列表中有100個元素,就會產(chǎn)生100次數(shù)據(jù)庫往返通信。
這種方式不僅效率低下,而且對于大型批處理操作來說,可能會導(dǎo)致性能瓶頸和資源浪費。

優(yōu)化:通過JDBC批處理
通過 MyBatisSqlSession 提供的批處理功能來手動執(zhí)行批量更新。

try (SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH)) {UserMapper mapper = session.getMapper(UserMapper.class);for (UserEntity user : userList) {mapper.updateUser(user);}session.commit();
}

這里mapper.updateUser就是單條的UPDATE語句。

通過這種方式,MyBatis 會在內(nèi)存中積累所有的更新命令,然后在調(diào)用session.commit() 時一次性提交給數(shù)據(jù)庫,這比逐條執(zhí)行要高效得多。

注意:是否存在效率差異,未實踐過!!!可能存在誤人子弟的嫌疑。

批量UPDATE方式二:INSERT + ON DUPLICATE KEY UPDATE
 <update id="updateForBatch" parameterType="com.bees.srx.entity.UserEntity">insert into sys_user(id,username,password) values<foreach collection="list" index="index" item="item" separator=",">(#{item.id},#{item.username},#{item.password})</foreach>ON DUPLICATE KEY UPDATEpassword=values(password)
</update>

不建議使用。要求較多,而且容易出現(xiàn)死鎖。

注意事項

  • 唯一鍵約束:確保 sys_user 表中的 id 字段有唯一鍵約束(通常是主鍵)。如果 id 不是唯一的,ON DUPLICATE KEY UPDATE 將不會觸發(fā)更新操作。
  • 性能:這種方式在大數(shù)據(jù)量的情況下比多次單獨的 INSERT 和 UPDATE 操作要高效得多。
  • 事務(wù)管理:確保這個操作在一個事務(wù)中執(zhí)行,以保證數(shù)據(jù)的一致性。如果中間發(fā)生錯誤,可以回滾整個操作。
  • 字段順序:確保 VALUES 函數(shù)中的字段順序與 ON DUPLICATE KEY UPDATE 子句中的字段順序一致。
總結(jié):

建議使用方式一,或者其優(yōu)化方式(JDBC批處理)。
各位也可以與AI對話看看給出的建議是什么。


有問題一定要留言啊各位。及時發(fā)現(xiàn)及時改錯。

http://www.risenshineclean.com/news/2011.html

相關(guān)文章:

  • 網(wǎng)站關(guān)鍵詞詞庫怎么做谷歌seo關(guān)鍵詞排名優(yōu)化
  • 坪山附近公司做網(wǎng)站建設(shè)哪家效益快十大廣告投放平臺
  • 做社交網(wǎng)站多少錢網(wǎng)絡(luò)推廣是干什么的
  • 珠海網(wǎng)站推廣優(yōu)化最近的新聞大事20條
  • 建設(shè)網(wǎng)站公司 優(yōu)幫云seo外鏈推廣工具下載
  • 論壇網(wǎng)站建設(shè)用工具軟件上海關(guān)鍵詞優(yōu)化公司哪家好
  • 網(wǎng)站建設(shè)合同附件格式搜索引擎有哪些類型
  • b2b網(wǎng)站有那些企業(yè)網(wǎng)站優(yōu)化排名
  • 麻涌鎮(zhèn)網(wǎng)站建設(shè)做網(wǎng)頁多少錢一個頁面
  • 基于b s結(jié)構(gòu)做的網(wǎng)站寧波seo軟件免費課程
  • 浙江省專業(yè)網(wǎng)站制作網(wǎng)站建設(shè)優(yōu)化近義詞
  • 京東網(wǎng)站建設(shè)的特點網(wǎng)絡(luò)域名怎么查
  • 百度網(wǎng)站建設(shè)是什么志鴻優(yōu)化網(wǎng)官網(wǎng)
  • 黃山搜索引擎優(yōu)化dz論壇seo
  • 美工素材網(wǎng)站有哪些安徽搜索引擎優(yōu)化seo
  • asp.net網(wǎng)站運行助手推廣app的營銷方案
  • 燈飾外貿(mào)網(wǎng)站百度手機(jī)助手app
  • 后臺系統(tǒng)免費模板網(wǎng)站免費游戲推廣平臺
  • 姑蘇區(qū)做網(wǎng)站seo教程搜索引擎優(yōu)化入門與進(jìn)階
  • 煙臺定制網(wǎng)站建設(shè)報價seo工具是什么意思
  • 國示范校建設(shè)網(wǎng)站品牌廣告語經(jīng)典100條
  • 網(wǎng)站后綴twnba最新消息球員交易
  • 網(wǎng)站建設(shè)的業(yè)務(wù)范圍手游推廣個人合作平臺
  • 在網(wǎng)站上做網(wǎng)絡(luò)課堂軟件多少錢線上營銷推廣方案
  • 網(wǎng)站建設(shè) 資質(zhì)昆明網(wǎng)絡(luò)推廣
  • 動態(tài)html做網(wǎng)站背景離我最近的廣告公司
  • 收費搭建網(wǎng)站多地優(yōu)化完善疫情防控措施
  • 做網(wǎng)站后期維護(hù)工資貼吧西安百度推廣外包
  • 網(wǎng)站建設(shè)內(nèi)部流程圖營銷策略有哪些
  • 合肥網(wǎng)站建設(shè)推廣百度網(wǎng)站大全舊版