我必须使用Hibernate将20000-30000条记录保存到MySQL中。这样Hibernate也会生成20000-30000个插入查询。我需要1-2分钟才能完成所有工作,这将导致504请求超时,无法访问我的网站。
首先,我是这样做的:
for (some loop elements) {
Object foo = new Object();
// do some foo get/set to fulfill the fields.
objectService.save(foo);
}
那是很多时间。然后我尝试将列表保存到db中,例如:
List<Object> objs = new ArrayList<>();
for (some loop elements) {
Object foo = new Object();
// do some foo get/set to fulfill the fields.
objs.add(foo);
}
objectService.saveAll(objs);
类似的东西。
将单个对象/记录保存到db中,与保存列表相比需要更长的时间。但是保存列表仍然会导致超时。所以问题是:是否有任何解决方案可以加快流程,而查询却比我的解决方案少?
谢谢!