如何优化 Table 插入的 A 记录导致其他 Tables 直接计数(或递归计数) Tables 记录 nums 在 Java 更新?

How to optimize The Table inserted A record that cause Other Tables which directly count( or recurse count) The Tables record nums update in Java?

这是一个模型,我们有

学院--专业--Class--学生

A同学只属于A class

Aclass只属于A大调

A专业只属于A学院


class Academy {
    String name;
    Integer personCount;
}

class Major {
    String name;
    Integer academyId;
    Integer personCount;
}

class _Class {
    String name;
    Integer majorId;
    Integer personCount;
}

class Student {
    Long id;
    String name;
    Integer academyId;
    Integer majorId;
    Integer _classId;
}

所以,对于每个实体,都有一个 table 映射到它 现在,我们插入一条记录到 Table student

当记录保存后,Table class 必须更新其记录(学生属于),设置 person_count = person_count + 1

完成后,Table major 也必须更新其记录(更新记录属于),设置 person_count = person_count + 1

此外,table academy 仍然需要像 majorclass

那样进行更新

是否有更好的方案来减少数据库写入时间?或者更好的 table 结构?

我现在还想起来,它确实压写了数据库

学生记录的限制将低于 100,000。

但是在特定的时间会做高频插入

我期待一个快速响应的解决方案

方案A:使用TRIGGER ... ON INSERT ...

B 计划:显式写入 UPDATEs 来增加计数器。

方案C:将方案B封装到存储过程中。

方案 D:不要将计数保留在表中,而是在需要时重新计算它们。 (这是最纯粹的方式——“thou shalt not have redundant info”。) 对于一千名学生,我怀疑是否有很大的“压力”。对于一百万学生来说,表现很可能很差。在那种情况下,你所拥有的(带有 personCount 的表)本质上是 Summary Tables