#先说结论:springboot+mybatis-plus框架,在批量save时,在没有开启事务时,数据量越大,插入会越慢。
#项目背景:项目中有业务会从excel导入千条甚至更多数据保存到数据库,而导入数据库时不能让档号重复,所以在入库时,需要根据档号查询是否存在,存在则更新,不存在则新增。
由于我使用了分批次导入excel数据,每次最多处理100条,然后分批次导入,我的框架是springboot+mybatis-plus,这里用了saveOrUpdate来进行入库操作。
当我用1500条数据做测试导入时,发现整个过程大约需要50秒。于是怀疑是数据库性能问题,自己又模拟了删除和插入、更新直接在数据库客户端中操作都不慢,于是怀疑到程序中是否存在问题,于是在业务中加入了事务将每次存的一百条数据上加入事务,导入立刻变快了。谨以此记录