首页 > 解决方案 > Spring Data JPA 批量插入

问题描述

我有 1,000,000 条记录要输入数据库。我有一个包含所有百万条记录的数组列表。然后我运行一个 for 循环将 arrayList 分解为包含 1,000 个项目的较小列表并保存所有内容。第一组 1,000 条插入不到一秒,然后每批 1,000 条运行时间越来越长,100,000 条记录内需要一分钟多的时间来保存。如果我停止程序并在第一批停止的地方重新插入,则在一秒钟内再次插入,那么每次插入的时间就会增加。下面是伪代码

ArrayList<Student> students= getAllRecords();
int skip =1000;

for (int i = (int) (repository.count() + 1); i < students.size(); i += skip) 
{
    List<String> subStudents = students.subList(i, Math.min(i + skip, students.size()));
    studentRepository.saveAll(subStudents);
}

标签: jpaspring-data-jpabatch-processing

解决方案


推荐阅读