首页 新闻 会员 周边

多线程批量插入数据库,事务超时如何解决

0
悬赏园豆:5 [待解决问题]

多线程批量插入数据库,事务超时如何解决?
目前数据库事务超时时间已经设置到1分钟,还是会超时。
每个线程插入数据量不同,在一个线程最多可能插入几万条
没有用到存储过程

堅的主页 | 初学一级 | 园豆:107
提问于:2022-06-10 11:13
< >
分享
所有回答(3)
0

插入数据一定要使用事务吗?

dudu | 园豆:30994 (高人七级) | 2022-06-10 15:23
1

现在的问题是有的线程耗时过长,有的线程耗时过短

我觉得应该是先确定一个阈值,表示一个线程处理的数据条数,假如是10000,每个线程插入10000条数据,每10000条数据创建一个线程;

线程使用线程池管理,事务放到线程上,一个线程一个事务;

测试插入10000条数据所需时间,然后调整事务超时时间

飒沓流星 | 园豆:1099 (小虾三级) | 2022-06-10 23:48
1

首先重新考量你的业务,确认是否真的需要事物来保障业务的进行。
然后考虑优化缩小事物的粒度。举个栗子:你在对数据进行处理,分片的时候完全不用加上事物。
只有真正要插入的那个方法上,加上事物,当你在多线程情况下,会获得多个连接,开启多个事物,如果还不能保障事务不超时,那就增加分片,减少单个分片的数据数量。

Raiden_xin | 园豆:268 (菜鸟二级) | 2022-06-11 22:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册