我有一個應用程序,其中有對每個「作業修訂版」進行了大量計算 - 這涉及與該修訂版鏈接的多行的總和。存儲總值或在運行時總結的最佳做法
什麼我不知道,如果是最好的做法是:
- 存儲在工作中修改一個「總」的數字,那麼我們可以總結起來
- 在運行時總顯示計算向用戶顯示
我有一個應用程序,其中有對每個「作業修訂版」進行了大量計算 - 這涉及與該修訂版鏈接的多行的總和。存儲總值或在運行時總結的最佳做法
什麼我不知道,如果是最好的做法是:
這是高度依賴於幾個因素,如:
其中每一個都有不同的權衡,並且有多種選擇來滿足每個的平衡。
如果您只處理少數幾行,這些之間沒有太大的區別,並且「每次只計算一次」都很好。如果沒有實際需要讓事情變得更快,那麼每次計算都是首選,因爲「更多normal」
一如既往:在一般情況下不要問什麼是好的。剖析自己的代碼,查看瓶頸位置,並傾向遵循「Don't, yet」規則。
這取決於。
如果有方便的方法可以解決問題,那麼您不需要一個可能很昂貴的查詢來計算出來。預先計算的一個大問題是複雜度的高低,你可以通過維護總計和數據來減少。
它的設計妥協,所以有什麼地方你最終沒有正確的答案。所有我想說的是,你應該把總數的預先計算作爲optmisation,所以如果你不知道你需要做的是,它是一個過早optmisation。
如果事情變得不合拍,你可以工作的平方你的數據的顯著量結束了。如果他們通過未修正的錯誤或未拔掉的差距而步調不穩,這是一項重大且持續不斷的工作。
不是你應該需要或實際上應該倉促。
如果數據庫支持物化視圖(例如Oracle)的或類似的結構,那麼這是另一種選擇。這樣的數據庫可以提供用於針對物化視圖進行查詢重寫的選項。 –