mvc利用缓存技术读取数据库

chenyuling 2016-10-09 02:29:01
比如有个用户表(假定数据不变),循环一千次传入用户登录的ID,读取数据库获取个人信息,肯定是可以的,但是就是慢。
如果利用MVC的缓存技术,可以达到提高速度的效果。

public ActionResult Index()
{
for (int i = 0; i < 1000; i++)
{
get_users();//获取所有的用户表数据信息
}
return View();
}

//获取所有的用户表数据信息,缓存一小时
[OutputCache(Duration = 3600)]
public DataTable get_users()
{
var users =/*从数据库中读取users表出来,并且缓存*/;
return users;
}
我的理解是读取数据库需要时间,所以设置缓存一小时,第一次读取要花时间,以后直接读取缓存就很快了。为什么整个循环下来还是花了很多时间,设置不设置缓存都一样。有什么地方不对吗?请教各位,谢谢。
...全文
369 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
闭包客 2016-10-09
  • 打赏
  • 举报
回复
看你用的缓存的效率,用不好比读数据库还慢。 数据库是很快的,太多人小看数据库的能力了。
  • 打赏
  • 举报
回复
数据缓存你应该看 System.Runtime.Caching.ObjectCache
chenyuling 2016-10-09
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
OutputCache是输出缓存,并不是数据缓存
我也觉得不太对,怎么用都是只能用在ActionResult输出页面。但是怎么用数据缓存呢?读取数据库数据,缓存起来,随时随地(指的是跨页面)都可以读取,还可以指定清除某个缓存对象。 谢谢。
  • 打赏
  • 举报
回复
OutputCache是输出缓存,并不是数据缓存
雷诺兹 2016-10-09
  • 打赏
  • 举报
回复
引用 2 楼 chenyuling 的回复:
[quote=引用 1 楼 u010717459 的回复:] 先读缓存 缓存没有读数据库 再存到缓存
理是这个理,能说具体点吗?如果让我来实现,绝对做成了判断一个全局变量,,不存在就读数据库保存到全局变量。然后读取全局变量了。完全没有了缓存的概念。我展示的这个示例简单还可以用全局变量,但是实际开发中不可能这么简单。[/quote] 你这个全局变量当然算缓存了 内存缓存 常用的字典之类的
chenyuling 2016-10-09
  • 打赏
  • 举报
回复
引用 1 楼 u010717459 的回复:
先读缓存 缓存没有读数据库 再存到缓存
理是这个理,能说具体点吗?如果让我来实现,绝对做成了判断一个全局变量,,不存在就读数据库保存到全局变量。然后读取全局变量了。完全没有了缓存的概念。我展示的这个示例简单还可以用全局变量,但是实际开发中不可能这么简单。
雷诺兹 2016-10-09
  • 打赏
  • 举报
回复
先读缓存 缓存没有读数据库 再存到缓存

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧