MySQL онлайн и пакетная обработка - варианты, чтобы запретить заданиям cron MySQL блокировать онлайн-запросы? - PullRequest
0 голосов
/ 14 января 2011

Есть ли другой способ предотвратить влияние ночных заданий cron, которые выполняют пакетную обработку на mysql, на онлайновые запросы веб-сервера-> mysql, кроме установки приоритета запросов? Я думаю, что может быть способ разбить их на части, но я не уверен, возможно ли это?

1 Ответ

1 голос
/ 14 января 2011

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

Другим решением будет обработка чаще, но даже в течение дня. В моем последнем проекте использовалась система событий, чтобы пользователь что-то комментировал, и это событие помещалось в очередь. Фоновый процесс (выполняемый из The Fat Controller) затем берет это событие и вставляет данные, чтобы все новостные ленты друзей пользователя были обновлены о комментарии. Таким образом, каналы обновляются с помощью простых операторов вставки, а не перестраиваются с нуля каждые x часов.

Что-то, что, возможно, могло бы помочь вам в повторении этих задач, - это проект, который я сделал и назвал The Fat Controller: http://www.4pmp.com/fatcontroller/

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

...