Я реализую приложение, которое отслеживает, сколько раз просматривается сообщение. Но я бы хотел сохранить «умный» способ отслеживания. Это означает, что я не хочу увеличивать счетчик просмотров только потому, что пользователь обновляет свой браузер.
Поэтому я решил увеличивать счетчик просмотров только в том случае, если IP и пользовательский агент (браузер) уникальны. Которая пока работает.
Но потом я подумал. Если Youtube, делает это таким образом, и у них есть несколько видео с тысячами или даже миллионами просмотров. Это будет означать, что их таблица представлений в базе данных будет чрезмерно заполнена IP-адресами и пользовательскими агентами ....
Это подводит меня к предположению, что их таблица видео имеет кеш счетчика для просмотров (т.е. views_count
]). Это означает, что когда пользователь нажимает на видео, сохраняется IP-адрес и пользовательский агент. Плюс увеличен столбец кеш-счетчика в видеотаблице.
Каждый раз при щелчке по видео. Youtube нужно будет запросить таблицу просмотров и подсчитать количество записей. Не повлияет ли это резко на производительность?
Так они это делают? Или есть способ лучше?