active in 2021-11-30 16:58 采纳率: 100%
浏览 102
已结题

想请教一下java业务批量处理的问题

例如:批量修改:一般有两种方式:
第一种:java代码service中处理,只反复调用一条sql
第二种:直接用mybatis文件sql中的foreach解决

想问一下这两种有啥区别,分别应用在什么场景下?

  • 写回答

6条回答 默认 最新

  • yue_hu 2021-11-30 17:10
    关注

    批次更新好处就是只需要和数据库进行一次通信,缺点是如果涉及的批量很大,那么就会导致执行速度变慢。
    循环更新则能有效降低事务粒度,缺点就是每次执行都需要一次通信。
    具体使用哪种方式则要更具实际的场景决定:如果你要操作10条数据,且都纳入同一个事务,那么很明显,批量更新更好。但是如果你要操作100W条数据,那么就很有必要分批进行操作。同样的如果你要操作10条数据,但是他们每一条都可以是单独的事务,且此数据属于热点数据,竞争严重,那么我认为单条更新更好,能有效的降低锁粒度。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 2月26日
  • 已采纳回答 2月18日
  • 修改了问题 11月30日
  • 创建了问题 11月30日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测