我有一个系统,允许用户安排电话会议,并邀请人们使用他们的电子邮件地址。这是在ASP.net MVC 3中实现的,在存储库模式中使用EntityFramework。当用户登录时,我希望显示一个即将到来的调用列表,这些调用是他们创建的或被邀请到的。该列表应显示电话的详细信息和组织者的姓名/电子邮件地址,其中保存了呼叫创建者的用户名和配置文件字段。
当组织者是登录用户时,如果呼叫是由另一个用户组织的,那么我将通过UserId检索用户(因为这是针对调用存储的),然后检索他们的配置文件,以显示他们的姓名和电子邮件链接--如果有大量的预定呼叫,或者如果我添加了一个历史调用列表,这可能会导致大量数据库查询,而这些查询感觉根本不太理想。
我考虑过的两个办法是:
是否有另一种我没有考虑过的方法,可以以一种优化的方式解决这一问题?
发布于 2012-03-20 11:11:04
您可以缓存用户的配置文件(内存中的System.Web.Caching / System.Runtime.Caching或一些更复杂的缓存,如Redis),并在某些用户的配置文件更改时使其失效。
当然,您只会使已更改的用户记录失效,而不会使整个缓存失效。
这样,您就可以享受这两个世界-访问内存而不是数据库的配置文件细节,并仍然有最新的数据,如果一些用户改变他们的个人资料。
https://stackoverflow.com/questions/9785195
复制相似问题