Spring Data-保存和删除很多记录

时间:2019-05-18 14:07:17

标签: java spring spring-data-jpa spring-data h2

我正在开发一个应用程序,该应用程序下载GTFS数据并将其从CSV转换为SQL数据库。此过程定期运行,在此过程中,首先删除所有数据,然后再次进行转换。

其中一个CSV包含很多记录,大约200万条。这使得整个过程花费大量时间(> 15分钟)

我正在使用Spring Data JpaRepositories。 我先删除所有数据,

repository.deleteAllInBatch();

然后,我将CSV中的数据解析为实体POJO,并将它们添加到ArrayList中(这只占整个过程的一小部分时间),然后使用

将所有数据保存到数据库中
repository.saveAll(listOfObjects);

数据当前存储在H2文件数据库中。我不知道我是否获得了预期的结果,流程应该花这么长时间,还是我做错了什么,我可以优化。

我曾尝试将spring.jpa.properties.hibernate.jdbc.batch_size设置为不同的值,但几乎没有改善,有时甚至会导致性能下降,因为我真的不知道最佳值是什么。

0 个答案:

没有答案