记一次优化JPA批量存储数据
写在前面
JPA中的批量存储方案,Save( ),或者saveAll( ),
一、优化细节
其实数据不大,excel 导入 500条数据,用了 40s,可能的原因
- excel解析速度
- 集合操作(几种for循环的不同)
- JPA的保存操作,save()和saveAll()
其实最后,试了很多次,这么都不是主要原因,而是SpringSecurity中一个对象
// 这里密码部分若是放到循环里面,会大大消耗执行时间
String encode = passwordEncoder.encode(Constants.USER_DEFAULT_PD);
usersFromExcel.forEach(user -> {
user.setPassword(encode);
user.setDepartmentId(departmentNames.get(user.getDepartmentName().trim()));
user.setCreateBy(currentUserLogin);
user.setUpdateBy(currentUserLogin);
user.setCreateTime(now)