Каков наиболее эффективный способ создания системы индикаторов форума (непрочитанных)?

Хорошо, еще одна интересная проблема на Маршруте 50.

Мы хотели реализовать настоящую систему лампочек форума, где сообщения непрочитанные пользователем (после создания учетной записи пользователя) отображаются как непрочитанные до тех пор, пока этот статус не будет очищен или пока пользователь не прочитает их.

Мы решили, что лучший и самый простой способ сделать это - создать таблицу непрочитанных сообщений.

Столбцы: user_id , board_id , thread_id , post_id , отметка времени и скрытый

Это работает очень хорошо и очень быстро для определения того, какие форумы / темы / сообщения являются непрочитанными (и ссылаются на их) на пользователя, однако для пользователя Невероятно медленно размещать сообщения на форуме, даже если выполняется только один запрос SQL:

INSERT IGNORE INTO `forums_lightbulb` SELECT `id`,'x','x','x',UNIX_TIMESTAMP(),0 FROM `users`

Я уверен, что это результат наличия 3065 учетных записей пользователей. Как я могу ускорить этот процесс? Я бы предпочел, чтобы система работала в режиме реального времени, насколько это возможно.

Важное примечание: Пожалуйста, ограничьте свои ответы средой общего хостинга без дополнительного бюджета. Мы ограничены PHP и MySQL 5.1. 53-log

8
задан Peter O. 29 January 2012 в 09:55
поделиться