首先重新考量你的业务,确认是否真的需要事物来保障业务的进行。
然后考虑优化缩小事物的粒度。举个栗子:你在对数据进行处理,分片的时候完全不用加上事物。
只有真正要插入的那个方法上,加上事物,当你在多线程情况下,会获得多个连接,开启多个事物,如果还不能保障事务不超时,那就增加分片,减少单个分片的数据数量。
插入数据一定要使用事务吗?
现在的问题是有的线程耗时过长,有的线程耗时过短
我觉得应该是先确定一个阈值,表示一个线程处理的数据条数,假如是10000,每个线程插入10000条数据,每10000条数据创建一个线程;
线程使用线程池管理,事务放到线程上,一个线程一个事务;
测试插入10000条数据所需时间,然后调整事务超时时间