Отслеживание просмотров контента в mysql - PullRequest
0 голосов
/ 20 сентября 2009

Мне интересно, стоит ли мне менять свою систему.

В настоящее время при просмотре видео выполняется запрос, который

UPDATE table SET hits=hits+1 WHERE id = $id.

очень просто, за исключением того, что они появляются в журнале медленных запросов постоянно, иногда с 3-4 секундами query_time.

Что, если я вставлю каждое представление как новую строку в таблицу памяти и каждый час буду вносить изменения в БД с помощью cron? Будет ли существенная разница в производительности? Есть ли альтернативы?

Ответы [ 2 ]

1 голос
/ 20 сентября 2009

Возможно, вы захотите проверить, есть ли у вас индекс по идентификатору, поскольку это обновление не должно занять много секунд. Это самое простое обновление, которое вы можете сделать, чтобы ускорить его.

Если это так, я думаю, у вас есть другие проблемы с вашей базой данных.

0 голосов
/ 20 сентября 2009

Я бы, вероятно, подошел к этому так, как вы думаете. Записывать представления в простую таблицу, оптимизированную для записи, и периодически обновлять счетчик представлений и очищать таблицу журнала.

С типом трафика, который вы видите, вы можете обнаружить, что такая система будет работать хорошо, если вы запускаете свой cron чаще, чем раз в час.

Хотя, как говорит Марк, у вас, вероятно, есть что-то еще, что следует выяснить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...