Я ищу простой способ хранения и получения счета, но сколько раз пользователь просматривает уникальное сообщение/страницу. ex post/1 сообщение/2. И меня тоже интересует общее количество просмотров.Уникальный счетчик просмотров с историей
Как я думаю, что я должен осуществить это:
- Создать userpostview таблицу со столбцами (идентификатор пользователя, сообщения дан, datecreated)
- Создать строку из userpostview каждый раз с идентификатором пользователя, сообщения дан, если запись не существует
- Получить общее количество строк, где идентификатор == Х
- Получить общее количество строк, где Y == сообщения дана
Для небольшого приложения с несколькими рядами все в порядке. Но я ожидаю высокий процент различных пользователей, читающих разные должности в день. Поэтому таблица userpostview будет намного больше, чем таблица таблицы пользователя или таблицы. В конечном счете, я считаю, что это будет проблема производительности, правильно? Например, при вызове счетчиков непрерывно может замедлить чтение. Мне интересно, будет ли кеширование графа идеальным в этой ситуации. Или должна быть отдельная таблица для хранения инкрементного счетчика?
Я использую колбу с sqlalchemy backend для postgresql. Достаточно ли этого?
Однако после того, как делать немного исследований, я увидел это:
https://www.youtube.com/watch?v=G-lGCC4KKok
http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html
Должен ли я быть "притворяется" счетчик? Есть ли лучший подход? Любые улучшенные или улучшенные предложения приветствуются.
Заранее спасибо.
Хм .. это выглядит интересно. На данный момент меня не обязательно интересуют графики или графики. Как мое основное приложение/api получает подсчеты? В чем преимущество стека ELK над добавлением новых строк в базу данных postgresql? – user805981
О! Я не знал, что вы хотите, чтобы подсчеты были частью ваших данных приложения. Я думал, что вы хотите видеть активность пользователя для отслеживания sys-ops и т. Д. Если вы хотите, чтобы ваше приложение использовало данные userpostviews, оно должно быть в базе данных. Я рекомендую таблицу разбиения Postgres. https://blog.engineyard.com/2013/scaling-postgresql-performance-table-partitioning –
Это больше похоже на то, что я ищу.Что вы думаете об использовании базы данных nosql вместе с postgres, где база данных nosql обрабатывает запись счетчика просмотров? – user805981