Бывают случаи, когда некоторые запросы Mysql подвисают и выполняются невероятно долго, создавая приличную нагрузку на сервер.

Этот способ помогает автоматически отслеживать и завершать все запросы которые длятся больше заданного количества секунд.

Процедура mysql_kill_query убивает все запросы, за исключением запущенных с правами супер пользователя, время выполнения которых превышает runtime секунд.

Выполняем запрос к базе данных:

DELIMITER //
CREATE PROCEDURE `mysql_kill_query` ( IN runtime TINYINT UNSIGNED )
LANGUAGE SQL
NOT DETERMINISTIC
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE connid INT UNSIGNED;
DECLARE cur1 CURSOR FOR SELECT ID FROM information_schema.PROCESSLIST
WHERE CONCAT ("'", USER, "'@'", SUBSTRING_INDEX(HOST,':',1), "'") IN
( SELECT `USER_PRIVILEGES`.`GRANTEE` AS `GRANTEE` FROM `information_schema`.`USER_PRIVILEGES`
WHERE NOT(`USER_PRIVILEGES`.`GRANTEE` IN
(SELECT GRANTEE FROM `information_schema`.`USER_PRIVILEGES`
WHERE `USER_PRIVILEGES`.`PRIVILEGE_TYPE` = 'SUPER' GROUP BY `USER_PRIVILEGES`.`GRANTEE`)))
AND COMMAND ='Query'
AND TIME>= runtime;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; 
OPEN cur1;
REPEAT
FETCH cur1 INTO connid;
IF NOT done THEN
KILL connid;
END IF;
UNTIL done END REPEAT;
CLOSE cur1;
END//
DELIMITER ;

И затем добавляем ещё один запрос, чтобы создать в планировщике mysql задание которое будет выполнять нашу функции каждые N секунды (в примере это 2 секунды) с максимальным временем запроса в две секунды:

SET GLOBAL event_scheduler=ON;
 CREATE EVENT IF NOT EXISTS `mysql_kill_query`
ON SCHEDULE EVERY 2 SECOND
ON COMPLETION PRESERVE ENABLE
DO CALL mysql_kill_query(2);

 

 

Нужна профессиональная удалённая помощь с сервером, сайтом, компьютером или ноутбуком?

Свяжитесь со мной любым удобным для вас способом, и получите её быстро и не дорого.

Обсудить задачу

Помогла статья? Поблагодари автора!

Остались вопросы, или есть что добавить? Добро пожаловать в комментарии.

Угостить автора чашечкой кофе

Недавние записи

Критическая уязвимость в Elementor Pro

Критическая уязвимость в Elementor Pro — популярном плагине WordPress

В версии, 3.11.7, плагина Elementor Pro выпущенной  22 марта 2023 года, устранена...
Подробнее
Яндекс Метрика

Битрикс Веб-окружение и проблемы с Вебвизор Яндекс Метрики из-за заголовка X-Frame-Options

В Битрикс Веб-окружении по умолчанию в настройках Nginx прописан заголовок X-Frame-Options, который...
Подробнее
Массовый взлом сайтов на Битрикс 2023

Массовый взлом сайтов на Битрикс 2023

В последнее время ко мне массово обращаются клиенты с жалобой на взлом...
Подробнее
Битрикс - Резервное копирование по FTP

Битрикс: Веб-окружение — бэкапы на удалённый FTP сервер.

1С-Битрикс: Веб-окружение умеет создавать резервные копии только на тот же сервер, на...
Подробнее
find

Команда Find в Linux — как найти и удалить файлы и папки

Команда find предназначена для поиска файлов и папок в файловой системе Linux....
Подробнее
спам

Exim — мониторинг почтовой очереди для выявления исходящего спама

Очень часто случается так, что на сервере присутствуют сайты с неактуальными версиями...
Подробнее
Архиватор Linux

Как работать с архиваторами в консоли Linux (шпаргалка)

Часто при работе в консоли linux приходится создавать архивы, или наоборот распаковывать...
Подробнее
Логирование POST запросов

Логирование POST запросов к сайту

Довольно часто возникают ситуации, когда обычных логов, которые пишет вебсервер, бывает недостаточно....
Подробнее
Linux изменить текстовый редактор

Как в Linux изменить текстовый редактор по умолчанию

В Linux существует несколько текстовых редакторов. Vim, Nano, Mcedit, и другие. У...
Подробнее
выполнение всех агентов на cron

Битрикс — выполнение всех агентов на cron

В Битрикс по умолчанию агенты выполняются на хитах. То есть триггером для...
Подробнее
GA-H61M-S2PV (rev. 2.1) циклическая перезагрузка

Gigabyte GA-H61M-S2PV (rev. 2.1) циклическая перезагрузка (решено)

Принесли в ремонт компьютер с материнской платой Gigabyte GA-H61M-S2PV (rev. 2.1). Компьютер...
Подробнее
MySQL

Перенос большой базы MySQL, если не достаточно места для дампа

Сегодня при переносе сайта с огромной базой MySQL с одного виртуального сервера...
Подробнее
Telegram MTProto Proxy

Как поднять собственный Telegram MTProto Proxy

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

Как стать самозанятым в Беларуси — налог на профессиональный доход

С 1 января 2023 года в Беларуси появился новый налоговый режим -...
Подробнее
фсзн

ФСЗН — узнать свой стаж в Беларуси можно через мобильное приложении

1 февраля 2023 года ФСЗН Беларуси запустил мобильное приложение, с помощью которого...
Подробнее
RustDesk

RustDesk — как получить компьютерную помощь онлайн

RustDesk - новая программа с открытым исходным кодом для удалённого управления устройствами....
Подробнее
Microlab M-800 не включается

Акустика Microlab M-800 не включается — Ремонт

Принесли в ремонт компьютерную акустику Microlab M-800 с диагнозом "не включается". У...
Подробнее
умный бесперебойник с WiFi

Делаем умный бесперебойник с WiFi и подключаем его к умному дому с Алисой

Недавно я рассказывал как можно удалённо включать и выключать свой компьютер через...
Подробнее
перенос сайта на другой сервер через SSH

Быстрый перенос сайта на другой сервер через SSH

Современные сайты и их базы данных могут быть очень большими, и перенос...
Подробнее
Включаем и выключаем компьютер удалённо

Включаем и выключаем компьютер удалённо, или через умный дом.

Иногда бывают ситуации, когда нужно включить или выключить компьютер удалённо. Например, включить...
Подробнее
блокируем вредных ботов

Nginx — блокируем вредных ботов.

В сети существует огромное количество ботов, которые занимаются сканированием сайтов. Некоторые боты...
Подробнее
cron

Cron — переход по ссылке с параметрами в URL

Cron - планировщик в Linux для запуска задач по расписанию. Обычно он...
Подробнее

Contact Form 7 — удаляем значок Google reCaptcha со страниц сайта.

Популярный плагин для создания контактных форм на сайтах под управлением Wordpress, Contact...
Подробнее
MySQL

Автоматическое завершение долгих процессов Mysql

Бывают случаи, когда некоторые запросы Mysql подвисают и выполняются невероятно долго, создавая...
Подробнее

Шпаргалка по командам EXIM

Exim — это агент пересылки сообщений для ОС Linux. В этой шпаргалке,...
Подробнее
подборка полезных программ

Windows — подборка полезных программ.

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

Отключаем уведомление «Это приложение не позволяет выключить компьютер»

При выключении компьютера Windows или при его перезагрузке часто можно встретить, как...
Подробнее

Windows 11 как установить Internet Explorer, как зайти в личный кабинет налоговой и портал ФСЗН

В новой Windows 11 компания Microsoft полностью удалила браузер Internet Explorer, который...
Подробнее

Удалённая компьютерная помощь. Что это и как?

Большинство проблем с вашим компьютером или ноутбуком можно решить удалённо, не выезжая...
Подробнее
Введите текст для поиска...