我想从头开始开发一个论坛,并需要特殊需求和定制。
我希望为我的论坛做好密集使用的准备,想知道如何缓存用户发布数量和回复数量等内容。
只有三个表tblForum、tblForumTopics、tblForumReplies,最佳的缓存用户主题和回复计数的方法是什么?
考虑一个简单的场景:用户点击一个链接并打开Replies.aspx?id=x&page=y页面,开始阅读回复。在HTTP请求中,服务器将运行一个SQL命令,该命令将检索该页面的所有回复,并“内部连接tblForumReplies以查找每个回复用户的回复次数”。
我希望为我的论坛做好密集使用的准备,想知道如何缓存用户发布数量和回复数量等内容。
只有三个表tblForum、tblForumTopics、tblForumReplies,最佳的缓存用户主题和回复计数的方法是什么?
考虑一个简单的场景:用户点击一个链接并打开Replies.aspx?id=x&page=y页面,开始阅读回复。在HTTP请求中,服务器将运行一个SQL命令,该命令将检索该页面的所有回复,并“内部连接tblForumReplies以查找每个回复用户的回复次数”。
select
tblForumReplies.*,
tblFR.TotalReplies
from
tblForumReplies
inner join
(
select IdRepliedBy, count(*) as TotalReplies
from tblForumReplies
group by IdRepliedBy
) as tblFR
on tblFR.IdRepliedBy = tblForumReplies.IdRepliedBy
很不幸,这种方法非常消耗CPU资源,我希望看到您关于如何缓存表计数的想法。
如果在插入/删除时为每个用户计算回复数,并将其存储在单独的字段中,如何与手动更改数据同步。假设我将手动从SQL中删除回复。