mybatisplus的批量保存效率慢的问题

287 阅读1分钟

问题

使用mybatisplus的时候遇到一个问题,我的一个方法开启了事务,当我执行这个方法的时候,立马去查询,查询到的还是以前的数据,后来发现是事务还没完事,但是这个时候又不能不让用户查询。于是就看这个事务中有什么地方那么耗费性能。

发现问题

后来通过 System.currentTimeMillis() 看出,是mybatis-plus的saveBatch方法耗费了性能

requirementService.saveBatch(addReqList);

通过日志发现,在这里看似是一句代码,实际上mybatis-plus是一句一句走的

解决方法

在配置的url中增加 rewriteBatchedStatements=true 即可开启数据库批量新增

url: jdbc:mysql://xx.xx.xxx.xxx:3306/cps?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true&serverTimezone=GMT%2B8