Я создаю веб-сайт, который показывает рекомендуемые страницы для пользователей.
Пользователи просто нажимают следующую кнопку, чтобы посмотреть разные рекомендуемые веб-страницы.
Я хочу проверить все действия, которые могут сделать пользователи.
Итак, я проверю просмотры страниц, которые фактически видят пользователи.
1. there is a 'user_pageview' column for each users. 2. the numbers will increase every time if users click next button.
Я могу отправить запрос на обновление данных каждый раз.
Тем не менее, я считаю, что этот шаг будет раздражать моего сервера.
Итак, я собираюсь временно сохранить данные в сеансе и сохранить их позже.
Как вы думаете?
Да, это будет «раздражать ваш сервер».
Точно так же вы «раздражаете» свой автомобиль, катаясь на нем.
Цель сервера базы данных – управлять хранилищем данных, извлекать, фильтровать и т. Д.
Нет ничего существенного в хранении данных в базе данных.
Может быть проблема, да, с перестройкой индекса (если есть).
Тем не менее, возникла бы проблема с сеансом отслеживания пользователей.
Поэтому я не буду беспокоиться о сеансе, пока у меня не возникнет проблема с базой данных (что, скорее всего, не произойдет никогда).
Я не вижу, что не так с увеличением страницы user_pageview на каждом просмотре страницы, вы можете сделать
update table views set user_pageview = user_pageview + 1 where page_id = 4
Ваш скрипт PHP был бы подключен к вашей БД в любом случае, и этот запрос не должен убивать ваш сервер.
Сохранение его на сеанс также «раздражает» ваш сервер, так как вам нужно будет сделать запрос, чтобы сохранить его в сеансе.
Если вы имеете в виду сервер db, мой вопрос: это проблема. Вы заметили, что сервер db становится узким местом? Я так не думаю, потому что сервер db должен легко справиться с этим.
Однако у меня действительно есть проблемы с производительностью db И ТОЛЬКО ТОГДА вы должны найти способ избавить сервер db от кеширования. Например, вы можете сохранить его в сеансе (убедитесь, что вы обновили db до того, как сеанс был уничтожен) или с помощью кеша на стороне клиента (локальное хранилище).
Опять же, вы должны только посмотреть на это, если сервер db станет узким местом. И если это так, я бы сначала попытался проверить, что WTH идет не так с моим db (почему это узкое место).