Я бы хотел сказать, что буду рад любому ответу.Я постараюсь структурировать свой текст для лучшего понимания.
Ситуация Я запускаю тематический интернет-форум, где вы можете добавлять темы в список избранных в меню, а в меню отображается количество новых сообщений.в этих темах.Поэтому каждый раз, когда вы перезагружаете страницу (заходите в любое место на всем сайте), проверяются новые сообщения по всем темам в избранном.
Проблема Это, конечно, довольно дорого для БД, потому чтоОбычно 20-50 избранных, и я должен проверить БД, если какой-либо пост был добавлен в какую-либо из этих тем.Средняя тема имеет 1000-2000 сообщений.И это происходит для каждого просмотра страницы для каждого пользователя, что составляет примерно 900 000 просмотров в месяц.
Возможное решение 1 Я храню общее количество сообщений в каждой теме и храню количество последних просмотренных сообщений.для каждой темы, для каждого пользователя.Это может быть самым быстрым, но имеет много недостатков, которые являются функциональными (удаление, фильтрация сообщений и т. Д.).
Возможное решение 2 Я сохраняю идентификатор последнего просмотренного сообщения длякаждая тема, для каждого пользователя.Это очень хорошее решение, но примерно в десять раз медленнее предыдущего.
База данных Я храню все сообщения по всем темам в одной огромной таблице = сотни тысяч сообщений.
Вопрос Я хотел бы устранить проблемы, которые приводят к решению 1, но мне нужно сохранить скорость.Я думал о создании таблицы для каждой темы и использовать решение 2, но я не знаю, поможет ли это.Поэтому, если у вас есть какие-либо впечатления, просто скажите мне, какое было бы самое быстрое решение.
Большое спасибо.