如何优化 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
仍然需要像 major
和 class
那样进行更新
是否有更好的方案来减少数据库写入时间?或者更好的 table 结构?
我现在还想起来,它确实压写了数据库
学生记录的限制将低于 100,000。
但是在特定的时间会做高频插入
我期待一个快速响应的解决方案
方案A:使用TRIGGER ... ON INSERT ...
B 计划:显式写入 UPDATEs
来增加计数器。
方案C:将方案B封装到存储过程中。
方案 D:不要将计数保留在表中,而是在需要时重新计算它们。 (这是最纯粹的方式——“thou shalt not have redundant info”。) 对于一千名学生,我怀疑是否有很大的“压力”。对于一百万学生来说,表现很可能很差。在那种情况下,你所拥有的(带有 personCount
的表)本质上是 Summary Tables
这是一个模型,我们有
学院--专业--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
仍然需要像 major
和 class
是否有更好的方案来减少数据库写入时间?或者更好的 table 结构?
我现在还想起来,它确实压写了数据库
学生记录的限制将低于 100,000。
但是在特定的时间会做高频插入
我期待一个快速响应的解决方案
方案A:使用TRIGGER ... ON INSERT ...
B 计划:显式写入 UPDATEs
来增加计数器。
方案C:将方案B封装到存储过程中。
方案 D:不要将计数保留在表中,而是在需要时重新计算它们。 (这是最纯粹的方式——“thou shalt not have redundant info”。) 对于一千名学生,我怀疑是否有很大的“压力”。对于一百万学生来说,表现很可能很差。在那种情况下,你所拥有的(带有 personCount
的表)本质上是 Summary Tables