gpt4 book ai didi

MySQL计算字段良好实践

转载 作者:行者123 更新时间:2023-11-29 02:30:32 24 4
gpt4 key购买 nike

我有如下两个表:

ERD

我只是想知道使用这种结构并将所有发票金额的总和放在父表上以获得更快的请求并避免一些重复计算是否是一个好习惯(结果将更新为发票表之后的触发器)?

还是得到一个规范化的表而不缓存那种计算字段更好?

最佳答案

这不是坏习惯本身。但是,在实现之前您应该三思。非规范化可能会提高性能,但并非总是如此,而且它在可维护性方面也有成本。

平均而言,每个项目有多少个 子项目 发票?如果只有少数,那么计算总数的成本可以忽略不计。在这种情况下不要反规范化。

对于一个给定的项目, 子项目 发票列表可能多久更改一次?如果很少,那么您应该预先计算总数。

相反,如果 subprojects 发票列表可能会“经常”更改(与您需要读取/计算总和的频率相比),那么您可能会花费更多时间不必要地重新计算总和。

底线:在确定实际瓶颈之前不要进行非规范化。一旦发现真正的性能问题,稍后重写您的应用程序以解决重构问题应该相对轻松。

关于MySQL计算字段良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com