在hibernate中保存大量记录的最佳方法
我有5000条记录要保存。从数据库的角度来看,在hibernate中保存单个记录(保存(记录)5000次)还是保存全部记录(记录列表5000条)的最佳方式是什么。。。?由于这种情况经常出现,建议我使用最佳方案。在Hibernate中使用批插入功能 批插入是hibernate的一个强大功能,在批量导入其他系统的数据时特别有用。如果不使用hibernate的批处理功能,则在插入许多记录时,应用程序的性能可能会显著降低 这里有一个简单的例子在hibernate中保存大量记录的最佳方法,hibernate,save,Hibernate,Save,我有5000条记录要保存。从数据库的角度来看,在hibernate中保存单个记录(保存(记录)5000次)还是保存全部记录(记录列表5000条)的最佳方式是什么。。。?由于这种情况经常出现,建议我使用最佳方案。在Hibernate中使用批插入功能 批插入是hibernate的一个强大功能,在批量导入其他系统的数据时特别有用。如果不使用hibernate的批处理功能,则在插入许多记录时,应用程序的性能可能会显著降低 这里有一个简单的例子 而且一次保存5000条记录可能会耗尽内存,并获得OutOfM
而且一次保存5000条记录可能会耗尽内存,并获得
OutOfMemoryException
,因为5000个实例可能会占用相当大的内存
一次保存一条记录意味着您没有使用JDBC的批处理功能,因为它可以更有效地插入记录
因此,为了获得最佳性能,您应该告诉hibernate使用JDBC的批处理功能,方法是将hibernate.JDBC.batch\u size
设置为非零值。一次保存的记录数应等于hibernate.jdbc.batch\u size
的值
此外,还应清除会话以释放内存,以防止在每个批处理结束时内存耗尽。您还可以禁用二级缓存以减少不必要的开销
参考: