我想知道对用户数据使用ConcurrentHashMaps是否有用。我将用户数据保存在mysql数据库中,并在用户登录(或有人编辑用户)时检索它们。每当用户进入另一个页面时,这些用户数据将被刷新。我应该使用地图并在后台将数据库保存到本地时从应用程序中保存更改,还是应该直接从数据库下载它。我想使应用程序尽可能地表现出色。
最佳答案
您所描述的是缓存。假设对数据库的调用花费很多,因为要加载的信息很多,或者用于提取数据的查询很复杂并且需要很多时间。缓存数据结构在这里发挥作用。它基本上是内存中的存储,实际上查询数据库的速度更快,因为确实已经将其加载到内存中。
填充缓存的过程与查询db的数据花费时间相同(通常更多,但顺序相同)。因此,只有在及时带来好处的情况下才使用缓存。速度与数据的更新之间存在折衷。根据您的用例,您必须在这两者之间找到适当的折衷方案,然后您将确定它是否真的很方便。
就像您描述的那样,即需要保存和显示的用户更新,使用高速缓存似乎有点过分的IMO,除非您有很多注册用户,并且其中许多用户正在同时使用系统。如果决定使用它,请记住可能会出现的一些并发问题。并发哈希图可以使您免受许多危害,但会降低性能。