登录
首页 >  数据库 >  MySQL

SpringBoot+Mybatis+MySQL 批量新增数据,如何高效避免OOM?

时间:2024-11-23 11:15:58 233浏览 收藏

积累知识,胜过积蓄金银!毕竟在数据库开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《SpringBoot+Mybatis+MySQL 批量新增数据,如何高效避免OOM?》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

SpringBoot+Mybatis+MySQL 批量新增数据,如何高效避免OOM?

springboot+mybatis+mysql批量新增数据时,如何高效避免oom?

在批量插入数据到 mysql 时,需要确保数据量不会过大以避免出现 oom 异常。以下是如何处理这个问题的建议:

  1. 规范数据量

与数据库交互时,最好由业务层进行约束,限制数据量在一个合理范围内,避免一次性传输过量数据。

  1. 分批保存

你的分批保存思路是正确的。对于大批量数据,可以将其按一定大小分批插入数据库。你的代码中每 10000 条数据分批插入,可以根据实际情况调整这个批次大小。

  1. 优化代码

你的代码可以进一步优化,减少不必要的对象创建:

public void insert(List<User> list) {
    int count = 10000; // 这里暂不考虑数据量小于10000的情况
    int max = list.size();
    while (max > 0) {
        int temp = Math.min(count, max);
        List<User> subList = list.subList(max - temp, max);
        userMapper.insert(subList);
        max -= temp;
    }
}

在优化后的代码中,使用 while 循环避免了不必要的 for 循环对象创建,并且使用 math.min 确保每次分批插入的数据大小不超过 count。

本篇关于《SpringBoot+Mybatis+MySQL 批量新增数据,如何高效避免OOM?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>