亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Web 應用程序數據庫或地圖以提高性能

Web 應用程序數據庫或地圖以提高性能

鳳凰求蠱 2022-07-20 15:53:16
我想知道對用戶數據使用 ConcurrentHashMaps 是否有用。我將用戶數據保存在 mysql 數據庫中,并在用戶登錄(或有人編輯用戶)時檢索它們。每次用戶進入另一個頁面時,這些用戶數據都會被刷新。我應該使用地圖并在那里保存我的應用程序中的更改,同時在后臺有一個數據庫,還是應該直接從數據庫下載它。我想讓應用程序盡可能高性能。
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

您所描述的是緩存。假設調用數據庫的成本很高,因為要加載很多信息,或者用于提取數據的查詢很復雜并且需要很多時間。緩存數據結構在這里發揮作用。它基本上是一種內存存儲,查詢數據庫確實更快,因為它確實已經加載到內存中。

填充緩存的過程與在數據庫中查詢數據所需的時間相同(通常更多但順序相同)。因此,只有在及時帶來好處時才使用緩存。但是,速度與數據的新鮮度之間存在折衷。根據您的用例,您必須在這兩者之間找到正確的折衷方案,然后您會發現它是否真的方便。

正如您所描述的那樣,即需要保存和顯示的用戶更新,使用緩存似乎有點過分IMO,除非您有很多注冊用戶,而且其中有很多同時使用系統。如果您決定使用它,請記住一些可能會出現的并發問題。并發哈希映射可以使您免于許多危險,但會降低性能。


查看完整回答
反對 回復 2022-07-20
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

如果性能是優先級,我認為您應該將登錄的用戶保留在內存中。

這樣,讀取請求會很快,因為您不需要查詢數據庫。但是,如果任何登錄的用戶會以某種方式被編輯,您將需要更新地圖。


查看完整回答
反對 回復 2022-07-20
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

人類無法分辨 1 毫秒延遲和 50 毫秒延遲之間的區別。因此,超出“足夠好”的優化是矯枉過正的。

MySQL 已經做了一些緩存。您添加另一個緩存實際上可能會減慢響應時間。


查看完整回答
反對 回復 2022-07-20
  • 3 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號