特別なニーズとカスタマイズを加えて、フォーラムを一から開発したいと考えています。SQLテーブルからのキャッシュの最適なアプローチ?
私は集中的に使用するためのフォーラムを準備し、ユーザー投稿数とユーザー回答数などをキャッシュする方法を考えています。
テーブルが3つしかない場合、tblForum、tblForumTopics、tblForumReplies、キャッシュの最適なアプローチは何ですか?ユーザーのトピックと返信はどれくらいですか?
単純なシナリオを考えてみましょう。ユーザーはリンクを押してReplies.aspx?id = x &ページ= 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からの返信を手動で削除するとします。