springboot多线程事务对于大数据量插入更新是否有性能提升?

业务需求需要先进行远程请求数据——> 数据筛选清洗组装-> 同库不同表间删除、更新->插入数据,如出现异常则进行回滚,现在对于数据筛选清洗组装采用多线程操作,后面的对数据的操作采用同步方式,虽然可以保持事务,但是感觉入库有点慢了,测试数据3w条,表结构还好不是太复杂,大概6mb多的sql语句,入库需要4s,感觉有点慢了,能不能使用多线程事务进行优化?这个3w只是往一张表中插,后面还有比这个数据量更大的往其他表插,就现在的性能来说感觉不太够啊。

多线程数据库事务操作,最重要的是事务一致,所以如何在保证事务的情况下能够提高效率,有没有示例demo推荐的?或者有更好的方案?


回答:

有两种方式,你可以做个参考。

  1. 尝试用多线程共享一个 session 打开同一个事务,并发入库,这种方法没尝试过,大概率不可行,你可以自己试一下
  2. 多线程多 session 同时并发入库;此时给同一批数据设置一个唯一的批次号,如果全部成功,标记该批次号为成功,不成功,后续可以异步删除。

在尝试上面的方式之前,应该要确认一下是否使用了批量插入、分批提交等优化方式。

以上是 springboot多线程事务对于大数据量插入更新是否有性能提升? 的全部内容, 来源链接: utcz.com/p/945513.html

回到顶部