我的Spring应用程序使用Hibernate JPA将记录保存到MySQL。
在良好和快速地工作之后,save()突然开始非常缓慢地工作:插入1K记录大约10分钟(主键是ID)。
我认为问题是在循环中调用save(),所以我更改为saveAll(),但令我惊讶的是没有什么不同,甚至20分钟也可以保存1139 records。
MySQL是本地的,只供我的dev env使用。
下面是日志文件:
2018-08-07 14:44:25:335 - About to save all new 1139 cats of Oscar
2018-08-07 15:03:47:758 - Succede
我正在使用spring data saveAll在Oracle数据库中保存3500条记录,但是执行速度非常慢,有没有办法进行批量插入或其他更快的方法? noteRepository.saveAll(noteEntityList);//<- this one is slow for 3000 records 提前感谢
据我所知,来自Spring Data JPA存储库的save()方法从表中获取相关记录,检查数据库中是否存在这样的记录,如果存在,则更新记录,否则插入新记录。 我的问题是,如果我使用findById()方法检索一条记录,对检索到的记录执行某些操作,然后调用save()方法,Spring Data JPA是否会再次获取该记录,或者当它已经附加到实体管理器时,它是否会更新它。