Развитие сайта » Новая система учета просмотров |
---|
1 | 2 | » |
Артём Григорьев
|
июн 2009 | |||
Вы наверное замечали, что главная страница форума грузится сильно дольше остальных страниц. Связано это прежде всего с системой выделения непросмотренных сообщений в темах. В базу данных сайта записываются все соверщенные посетителями просмотры. Чтобы узнать, читали ли вы данное сообщение, сравнивается время вашего последнего посещения этой темы и время добавления данного сообщения. При этом к таблице, которая содержит на данный момент почти 88 тысяч записей делается достаточно трудоемкий LIKE-запрос, выполнение которого может занять до 0.4 секунды! А это при том, что такой запрос выполняется для каждой темы (из 77 штук). Предлагаю внедрить новую систему. И вы бы ничего не заметили, если бы не одно Но. Будет полное мясо с уведомлениями о новых сообщениях. То есть либо их будет море, либо вы пропустите какие-нибудь. Вот. Оно того стоит? |
||||
Дмитрий Бородин
|
июн 2009 | |||
Меня не напрягает подождать. | ||||
Артём Григорьев
|
июн 2009 | |||
Меня напрягает. Представь, что будет через годик? Когда просмотров раза в три больше станет? - В три раза дольше ждать придется. Уж лучше сейчас сделать, пока это не так много заденет пользователей. |
||||
Роман Домбровский
|
июн 2009 | |||
Объясни разницу в механизмах уведомления. | ||||
Артём Григорьев
|
июн 2009 | |||
Внешней разницы никакой. Чисто алгоритмическая. Или тебя она интересует? | ||||
Роман Домбровский
|
июн 2009 | |||
Она. Может можно будет убрать неудобство. Может записывать, сколько было сообщений в каждой теме при последнем заходе, а не по времени делать. Или сделать класс, который меняется на Вкл, когда кто-то другой зашёл в тему, а при заходе человек делать Выкл. |
||||
Артём Григорьев
|
июн 2009 | |||
Ну то, что сейчас я тебе описал. А будет так: таблица, в которой записывается UserID, TopicID и MessageID последнего просмотренного сообщение данным пользователем в данной теме. Запрос к такой базе выполняется гораздо быстрее ,да и записей там будет меньше. |
||||
Роман Домбровский
|
июн 2009 | |||
А почему будет мясо? | ||||
Артём Григорьев
|
июн 2009 | |||
Ну просто надо либо всем оставить эту таблицу пустой, и тогда всем придется прошелкать "непросмотренные" темы, либо заполнить, что все всё просмотрели. | ||||
Роман Домбровский
|
июн 2009 | |||
Лучше первое. Таким образом в первый раз систему проверишь. |
1 | 2 | » |