java計算金額是放在記憶體中計算還是在sql中計算好呢?

時間 2021-05-14 11:55:30

1樓:whoishower

看你的資料是否經常變動,如果資料變動很小,可以提前更新在資料庫,提公升下次獲取金額速度,降低下次更新時間,但是如果是熱點資料就不建議這麼做了,常規操作就這樣

2樓:

沒弄你做什麼東西的會這樣用,設計金額的基本首發都是先把金額換成分單位,在進行計算,精確計算有很多第三方庫使用,主要都是用到BigDecimal類

3樓:Liu Bo

系統不大優先考慮用sql計算,用事物鎖記錄、讀取、計算、再把結果寫回去,這開銷比一條sql計算會少?用樂觀鎖得考慮更新失敗後處理流程。自己實現鎖也得考慮用分布式的情況。

4樓:賈森

樓主的行業和使用場景全都沒提,回答的人就都洋洋灑灑說了這麼多。你們確定真的看懂樓主想問啥了?

我覺得兩種方式都是正確的,具體要看用在什麼地方,才能確定哪種方案更好。

5樓:小亦

記住一句話,這是設計資料庫的基本原則:

delete is update

update is insert

然後很多問題自然就迎刃而解了。

6樓:

以前做架構的時候總會強調分層的概念,比如:資料層,業務邏輯層,控制層,展示層等等(實際上還會更進一步細分)。分層有幾個顯而易見的好處:

便於擴充套件,當使用者數量增大後可以無縫銜接,不用推翻架構就能支撐;解耦合,一些改動可以控制到某一層中,不會影響到整個系統;便於維護等等。毫無疑問,分層可以降低工作量,保證系統的穩定。

這些東西在大系統設計中幾乎是必備的。像題主說到的其實就是乙個分層問題。對業務資料的處理應該放到業務邏輯層,然後會在記憶體中完成計算。

7樓:井田

應該使用資料庫計算。

因為資料庫的資料型別和開發語言的資料型別不能保證精度一致,資料庫計算可保證計算精度和儲存精度統一。

所有做過財務的人都知道一分錢問題,只要計算經過除法必然會產生誤差,同精度計算儲存對降低誤差有正向意義。

指令和資料以什麼方式儲存在記憶體中,計算機如何區分它們是指令還是資料?

元寶 這個是計算機組成原理的內容。指令跟資料都是以二進位制也就是0 1的方式儲存在記憶體中的,CPU執行指令時,通過指令週期的不同階段來區分是指令還是資料,再詳細就涉及指令的執行過程了。 zh.wikipedia.org wiki E4 B8 AD E5 A4 AE E5 A4 84 E7 90 8...

當乙個程式大於計算機記憶體時,計算機是如何執行的

零堍 先說結論 利用虛擬儲存器 虛擬記憶體 功能,將需要的頁面或段先加載入記憶體,將暫時不需要的儲存在硬碟之中。在 計算機作業系統 中的虛擬儲存器一章中有講述到 區域性性原理 程式執行在一較短的時間內,程式的執行僅限於某個部分,相應的,它所訪問的儲存空間也侷限於某個區域。因此,虛擬儲存器的應用,便是...

什麼是生物資訊學?生物資訊學中計算機和大資料各扮演什麼樣的角色?

張旭東 當研究樣本量小 研究物件只是一兩個基因的時候,實驗結果用個小本記一下就行了,不用統計學方法,更用不上計算機程式設計,高效能計算。但是隨著高通量測序技術的發展和人類基因組計畫的完成,大資料 大樣本量的時代來了。樣本量大了,你需要科學的統計學方法 資料量大了,你需要高效的計算機程式設計。數學 計...