我仍未找到解决我的问题的好方法。基本上,我有一个ASP.NET MVC网站,它需要大量数据库访问来生成视图(每个视图2-3个查询),我想利用缓存来提高性能。
问题在于视图包含的数据可能会不规则地更改,例如相同的数据可能会持续2天,也可能会在1小时内多次更改。
查询非常简单(select... from where...),没有巨大的连接,每个查询平均返回20-30行数据(大约10个列)。
目前该站点的查询非常简单,但随着时间的推移,所有者将添加更多数据并增加访客数量。它们现在很大,我将考虑将其缓存,因为流量主要来自Google AdWords等,快速加载页面将是一个优势(显然)。
该网站将托管在Microsoft SQL Server 2005数据库上(如果需要,可以升级到2008)。
我应该:
问题在于视图包含的数据可能会不规则地更改,例如相同的数据可能会持续2天,也可能会在1小时内多次更改。
查询非常简单(select... from where...),没有巨大的连接,每个查询平均返回20-30行数据(大约10个列)。
目前该站点的查询非常简单,但随着时间的推移,所有者将添加更多数据并增加访客数量。它们现在很大,我将考虑将其缓存,因为流量主要来自Google AdWords等,快速加载页面将是一个优势(显然)。
该网站将托管在Microsoft SQL Server 2005数据库上(如果需要,可以升级到2008)。
我应该:
- 将缓存设置为物品不更改的最短时间(例如缓存3分钟),并告诉所有者任何更改最多需要3分钟才能显示?
- 找到一种方式强制清除缓存并在更改时重新处理(例如:如果所有者在管理面板中添加项目,则清除相关缓存)
- 完全放弃缓存
- 还有适合这种情况的选项吗?