Задать вопрос
@romanpostovalov
Developer

Как сделать накопитель событий и сбросить одним запросом в таблицу?

Есть такой кейс, на странице в действии контроллера происходит нескольких событий, каждое из которых затем пишется в таблицу лог через INSERT SQL. Ну скажем метод, Log::add($type, $message) в котором выполняется INSERT SQL для вставки одной строки в таблицу.

Проблема: Событий много, постоянно запись в лог, запросы выполняются на вставку, таблица постоянно растет, что замедляет работу сайта.

Моя задача оптимизировать этот процесс, первое что приходит в голову, это множествнный INSERT для вставки сразу нескольких записей, для этого нужно реализовать накопитель строк и потом как то сбрасывать все сразу в таблицу.

Вопрос, как это грамотно реализовать и куда в PHP скрипте повесить сброс накопленных событий? Причем чтобы не потерять ни одного в случае аварийного завершения скрипта или если exit, нужен какой то механизм накопления и потом запись все событий в таблицу лог, что позволит сократить количество INSERT.
  • Вопрос задан
  • 241 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
zo0m
@zo0m
full stack developer
Как вариант заменить ваш Мускл на Монгу
Ответ написан
Комментировать
@entermix
Можно писать в файл, а затем по крону обрабатывать его
Ответ написан
Комментировать
@dimabdc
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы