簡體   English   中英

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

[英]Web Application Database or Maps for performance

我想知道對用戶數據使用ConcurrentHashMaps是否有用。 我將用戶數據保存在mysql數據庫中,並在用戶登錄(或有人編輯用戶)時檢索它們。 每當用戶進入另一個頁面時,這些用戶數據將被刷新。 我應該使用地圖並將應用程序中的更改保存在那里,同時將數據庫置於后台,還是應該直接從數據庫下載它。 我想讓應用程序盡可能地表現出色。

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

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

您所描述的是一個緩存 假設對數據庫的調用花費很多,因為要加載的信息很多,或者用於提取數據的查詢很復雜並且需要很多時間。 緩存數據結構在這里發揮作用。 它基本上是內存中的存儲,實際上查詢數據庫的速度更快,因為確實已經將其加載到內存中。

填充緩存的過程與查詢db的數據花費的時間相同(通常更多,但順序相同)。 因此,只有在及時帶來好處的情況下才使用緩存。 有一個折中雖然速度 VS數據的新鮮度 根據您的用例,您必須在這兩者之間找到適當的折衷方案,然后您將確定它是否真的很方便。

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

人類無法分辨1毫秒延遲和50毫秒延遲之間的差異。 因此,優化超出“足夠好”范圍是過大的。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM