10w行级别数据的Excel导入优化记录 (3)

这里多数使用到很多 Java8 的API,不了解的朋友可以翻看我之前关于 Java 的博客。方法使用起来很简单

InsertConsumer.insertData(feeList, arrearageMapper::insertList); 其他影响性能的内容 日志

避免在 for 循环中打印过多的 info 日志

在优化的过程中,我还发现了一个特别影响性能的东西:info 日志,还是使用 41w行、25列、45.5m 数据,在 开始-数据读取完毕 之间每 1000 行打印一条 info 日志,缓存校验数据-校验完毕 之间每行打印 3+ 条 info 日志,日志框架使用 Slf4j 。打印并持久化到磁盘。下面是打印日志和不打印日志效率的差别

打印日志

1593326545824

不打印日志

1593328263471

我以为是我选错 Excel 文件了,又重新选了一次,结果依旧

1593329905165

缓存校验数据-校验完毕 不打印日志耗时仅仅是打印日志耗时的 1/10 !

总结

提升Excel导入速度的方法:

使用更快的 Excel 读取框架(推荐使用阿里 EasyExcel)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwyxwp.html