问题描述
我想知道哪个最适合 这是我的实体:
obj.key_c
选项1直接在UserRepository中批量更新:
如果要更新的用户数达到数百万,这是否会影响我的数据库性能?
obj.key_a
选项2将按状态获取用户并按如下方式逐一更新:
我很确定这会由于内存使用情况而影响MS的性能
@Entity
@Data
public class User {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstName;
private String middleName;
private String lastName;
private Status status;
private String statusRemarks;
}
解决方法
绝对选项1。
这两个选项均会读取,修改并写回受影响的数据。
顶部的选项2通过网络读写数据并将其转换为Java对象。
因此它将变慢,甚至可能对数据库造成更高的负载。
如果数据库的负载仍然很高,则应考虑将更新分成较小的更新,例如,一次限制ID范围。