Очередь запросов на обновление гигантского обновления? - PullRequest
2 голосов
/ 12 апреля 2011

У меня есть сайт, и когда пользователь выполняет действие, я хочу добавить его к количеству действий, которые он когда-либо совершал.Естественно, я бы сказал "обновлять таблицу пользователей каждый раз!"но я не чувствую, что это хорошее решение, и мне интересно посмотреть, есть ли способ сделать это.

По сути, пользователь будет входить в систему и начать использовать действия, и каждый раз, когдасделать действие, которое я бы сделал [что угодно], а затем в конце дня я беру все [что угодно] и делаю запрос, экономя ресурсы на каждом действии.Если бы сайт вырос до 1000 пользователей, эти маленькие запросы начали бы складываться!Существует только один тип «действия», ради этого вопроса просто предположим, что каждая загрузка страницы будет действием.

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

Если это один сеанс, сохраните (очередь) «все обновления» в сеансе / глобальной переменной.Обновление в конце сеанса.

Если это система с несколькими сессиями, я бы предложил сделать это и обновить таблицу в конце каждого сеанса.

:( до нескольких сотен килобайт, это не очень хорошая идея):

Вы хотели бы создать библиотеку конечного кодирования / декодирования шорткода для сохранения ее в сеансах.Если речь идет об огромных данных.Например, если у вас есть система перетаскивания, промежуточные состояния могут быть структурами пары <> val.например: LOC_A = WIDGET_1;LOC_B = WIDGET_88 .. и так далее, и так далее.

это имеет смысл?

0 голосов
/ 12 апреля 2011

Не сбрасывайте со счетов ведение таблицы событий. Если у вас не очень высокая частота действий пользователя, может быть разумно запрашивать и подсчитывать события действия, а не где-то накапливать итоги. Индекс может предоставить доступ для чтения из одного блока к нескольким сотням или тысячам событий с разумным дизайном. Разработчики часто могут быть запуганы размерами таблиц для подобных вещей, которые на самом деле вполне разумны. IME размер таблицы в несколько ГБ не является проблемой для MYSQL, если таблица доступна только для записи.

Как обычно, тестирование нескольких вариантов - лучшая идея, и вы будете удивлены.

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