Хранение и отображение живой статистики - PullRequest
0 голосов
/ 20 декабря 2011

Скажем, мы сайт, получающий огромное количество трафика, размер трафика Amazon.com.И скажем, мы хотели бы отобразить счетчик на главной странице, показывающий общее количество продаж с первого декабря, и счетчик должен был обновляться через ajax каждые 10 секунд.

Как бы мы поступили так?

Будет ли у нас сводная таблица базы данных, отображающая общий объем продаж, и каждая проверка будет +1 к счетчику, и мы будем получать это число каждые 10 секунд?Будем ли мы РАСЧЕТАТЬ () всю таблицу продаж каждые 10 секунд?Есть ли внешний API, к которому я могу добавить статистику и затем извлечь из них ajax?

Надеюсь, вы поможете, спасибо

Ответы [ 3 ]

1 голос
/ 20 декабря 2011

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

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

Что касается части Ajax, то это будет просто запрос к этой таблице сумм.

1 голос
/ 20 декабря 2011

Если ваш сайт основан на ecomm, поскольку вы осуществляете продажи, то вы ДОЛЖНЫ иметь где-то таблицу отслеживания продаж.Вы могли бы просто сделать подсчет базы данных частью рендеринга страницы, когда пользователь посещает или обновляет ваш сайт.

IMO, нет необходимости изменять этот подсчет, так как большинству посетителей это не нужно.

Кроме того, я бы порекомендовал выполнить этот запрос к базе данных только для чтения (ведомой), если ваш трафик действительно находится на уровне amazon.

0 голосов
/ 20 декабря 2011

Что бы вы ни делали, не пересчитывайте все каждые 10 секунд.Почему бы не иметь cronjob, который делает подсчет данных каждые 10 секунд?Это может занять текущее время - 10 секунд, и в ведомой базе данных добавить разницу к текущему счету?Каждую минуту, мм?

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