mybatis-plus批量插入saveBatch太慢?我愿意称rewriteBatchedStatements为神
最近在做项目优化,代码优化之后,测试接口,好家伙。一个定时任务接口执行要10秒左右。
一点点追踪,给每个方法打上执行时间,一点点缩小范围。好家伙,终于让我锁定了目标。
这是mybatis-plus的批量插入,由于调用的是第三方接口,他们有多少数据,我们就更新多少数据进数据表里面。初步一看,最多的那张表1000条数据左右,平均每个表300多条
最多那张表,进行数据更新,整整需要消耗2秒多
这哪里能忍,一条sql差不多3秒,数据还只是1000条,要是达到数以万计,那不得崩掉。
赶紧找一波解决方法。最后锁定一个数据库连接的属性rewriteBatchedStatements
加上这个属性,性能直接起飞,看效果
结果1000条数据的插入,不到两毫秒。这速度,我都惊了。具体原理就不一一展开来讲了。下班要紧。
经过今天这一折腾,看来数据库这块,还是有必要深入学习的。
作者:天下没有收费的bug
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。