- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有如下两个表:
我只是想知道使用这种结构并将所有发票金额的总和放在父表上以获得更快的请求并避免一些重复计算是否是一个好习惯(结果将更新为发票表之后的触发器)?
还是得到一个规范化的表而不缓存那种计算字段更好?
最佳答案
这不是坏习惯本身。但是,在实现之前您应该三思。非规范化可能会提高性能,但并非总是如此,而且它在可维护性方面也有成本。
平均而言,每个项目有多少个
子项目
发票?如果只有少数,那么计算总数的成本可以忽略不计。在这种情况下不要反规范化。
对于一个给定的项目,
子项目
发票列表可能多久更改一次?如果很少,那么您应该预先计算总数。
相反,如果
subprojects
发票列表可能会“经常”更改(与您需要读取/计算总和的频率相比),那么您可能会花费更多时间不必要地重新计算总和。
底线:在确定实际瓶颈之前不要进行非规范化。一旦发现真正的性能问题,稍后重写您的应用程序以解决重构问题应该相对轻松。
关于MySQL计算字段良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950450/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!