我正在开发一个应用程序,需要跟踪页面的浏览量。几乎就像SO是怎么做的。它是用于确定给定页面的受欢迎程度的值。
我担心每次需要记录新 View 时写入数据库会影响性能。我知道这种临界预优化,但我以前遇到过这个问题。无论如何,该值不需要是实时的;延迟10分钟左右就可以了。我认为缓存数据并每 X 分钟进行一次大型写入应该会有所帮助。
我在 Windows Azure 上运行,因此 Appfabric 缓存可供我使用。我最初的计划是创建某种复合键(PostID:UserID),并用“pageview”标记该键。 Appfabric 允许您通过标签获取所有 key 。因此,我可以让它们建立起来,并在我的表中执行一次批量插入,而不是许多小写入。该表看起来像这样,但可以更改。
int PageID | guid userID | DateTime ViewTimeStamp
网站仍然会从数据库获取值,写入只会被延迟,有意义吗?
我just read Windows Azure Appfabric 缓存不支持基于标记的搜索,因此它几乎否定了我的想法。
我的问题是,你将如何实现这一目标?我是 Azure 新手,所以我不确定我的选择是什么。有没有办法在不基于标签的搜索的情况下使用缓存?我只是在寻找有关如何延迟这些 SQL 写入的建议。
最佳答案
您可能想看看 http://www.apathybutton.com (以及它链接到的 Cloud Cover 剧集),其中讨论了一种高度可扩展的计数方式。 (这可能超出了您的需求,但希望它能为您提供一些选择。)
关于sql - 延迟写入 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9521643/