
springboot+mybatis+mysql批量新增数据时,如何高效避免oom?
在批量插入数据到 mysql 时,需要确保数据量不会过大以避免出现 oom 异常。以下是如何处理这个问题的建议:
规范数据量
与数据库交互时,最好由业务层进行约束,限制数据量在一个合理范围内,避免一次性传输过量数据。
分批保存
你的分批保存思路是正确的。对于大批量数据,可以将其按一定大小分批插入数据库。你的代码中每 10000 条数据分批插入,可以根据实际情况调整这个批次大小。
优化代码
你的代码可以进一步优化,减少不必要的对象创建:
public void insert(List list) { int count = 10000; // 这里暂不考虑数据量小于10000的情况 int max = list.size(); while (max > 0) { int temp = Math.min(count, max); List subList = list.subList(max - temp, max); userMapper.insert(subList); max -= temp; }}
在优化后的代码中,使用 while 循环避免了不必要的 for 循环对象创建,并且使用 math.min 确保每次分批插入的数据大小不超过 count。
以上就是SpringBoot+Mybatis+MySQL 批量新增数据,如何高效避免OOM?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/49420.html
微信扫一扫
支付宝扫一扫