Я хотел бы разработать Форум с нуля, с особыми потребностями и настройкой.Лучший подход к кешу Подсчет таблиц 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
К сожалению, этот подход очень ресурсоемкий, и я хотел бы видеть ваши идеи о том, как кэшировать вещи, как таблицы графы.
При подсчете ответов для каждого пользователя на вставку/удаление и сохранение его в отдельном поле, как синхронизировать с ручным изменением данных. Предположим, что я вручную удалю ответы от SQL.