У меня очень высокий сайт трафика с большим количеством фотографий на нем, и я пытаюсь отслеживать, какую фотографию просматривал каждый пользователь.Отслеживание пользователей и фотографий, которые они просмотрели
Моим первым инстинктом будет таблица SQL с двумя столбцами: user_id & photo_id. Но это не повлияло бы на мой уровень трафика, и таблица быстро стала бы неуправляемой.
Любые рекомендации для решения anoher, SQL или NoSQL (mongodb, couch, redis, ...)
Мой код в основном PHP, если это имеет значение.
Спасибо!
Редактировать Существует 10 миллионов миллионов дней.
Edit мне не нужно знать общее время пользователь просматривает конкретную фотографию, были просто ли его рассматривать вообще этим пользователем
Вы можете добавить идентификаторы фотографий в сеанс и обновить БД навалом, поэтому вместо обновления каждой фотографии, которую они видят, вы можете обновить WHERE id IN (5, 10, 15, любые идентификаторы). Отрицательная сторона этого заключается в том, что если пользователь просматривает n-1 изображения и затем выходит из системы, чтобы не возвращаться, вы потеряли запись n-1 изображений. – JimL
Спасибо, Джим, ты говоришь, что ты делаешь объемную вставку? (не совсем обновление?). Это очень помогло бы, но таблица все равно быстро поправилась. Через неделю или около того это будет неуправляемо. – OneSolitaryNoob
Ах, я догадываюсь, что сегодня я вошел в систему слишком рано. Вам придется делать несколько запросов на вставку, но если вы используете подготовленные заявления, вам пригодится запрос 2-15 (или какой бы номер вы ни выбрали), когда вы их выполняете. Насколько велики вы ожидаете получить таблицу? SQL может обрабатывать миллионы строк. Кроме того, вы можете изучить разбивку таблицы/осколки. – JimL