我有一个用户权限列表。我正在考虑从UserPermission
表中提取所有数据,将其放入缓存中,然后userID
使用 LINQ 对其进行过滤。
因此,下次有人尝试访问用户权限屏幕时,我会将数据保存在缓存中,然后根据用户 ID 过滤和显示必要的基础。
这样做有什么表现吗?或者在数据库/数据层中过滤它的速度更快?
这里有两个因素在起作用
一般来说,对于小型数据集,1. 和 2. 之间的差异可以忽略不计。
对于小结果的大数据集,2.会有更好的表现
对于具有大结果的大数据集,1.将具有更好的性能
但是当然,这种概括是完全没有用的,因为它完全取决于您的环境和您的代码。
您需要权衡延迟、性能和陈旧数据。
不同的用例总是不同的......
但是这种东西已经内置在 .net 中了——查找 ASP.NET Authorization Providers