【发布时间】:2018-04-14 03:33:08
【问题描述】:
我正在使用 REST API 从服务中获取数据。我转换这些数据并将其存储在数据库中。我必须每隔 15 分钟做一次,然后确保这个数据库有最新的信息。 我在 Java 程序中执行此操作。我想知道在查询完所有数据之后是否会更好 1. SELECT 语句并比较与转换后的数据并进行更新(删除所有相关记录到已更改的内容并插入新的)
或
- 每次都删除并全部插入。
选项 1 可能会减少很多事务,保证 SELECT 因为我们正在比较所有记录,但可能不会有很多 UPDATE,因为我不希望数据发生太大变化。但它有对所有记录进行比较以检测变化的缺点
我计划使用 Spring Boot、JPA 层和可能的 postgres 来执行此操作
【问题讨论】:
-
Insert with on conflict 也给出了解决方案,不知道任何基准
-
预期的数据量是多少?
-
SELECT 是否可以包含 WHERE 子句来获取需要更新的记录?
标签: java database spring postgresql jpa