我想從頭開發一個論壇,有特殊的需求和定製。從SQL表緩存計數的最佳方法?
我想準備我的密集使用論壇,想知道如何緩存諸如用戶帖子數和用戶回覆數等內容。
只有三個表,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中的回覆。