MySQL. Могу ли я ограничить максимально допустимое время выполнения запроса?

Я ищу способ ограничить максимальное время выполнения запроса на сервере mysql. Я понял, что это можно сделать с помощью конфигурационного файла my.cnf, но не может найти что-либо в документах. Кто-нибудь знает, можно ли это сделать? спасибо.

Ответы

Ответ 1

Невозможно указать максимальное время выполнения при отправке запроса на сервер для запуска.

Однако, не редкость иметь задание cron, которое выполняется каждую секунду на сервере базы данных, подключая и делая что-то вроде этого:

  • SHOW PROCESSLIST
  • Найти все соединения с временем запроса, превышающим максимально возможное время.
  • Запустите KILL [идентификатор процесса] для каждого из этих процессов.

Ответ 4

http://mysqlserverteam.com/server-side-select-statement-timeouts/

Интересное обновление. Я проверю его:

"MySQL 5.7.4 вводит возможность устанавливать ограничения времени выполнения на стороне сервера, заданные в миллисекундах, для операторов SELECT только для чтения".

SET GLOBAL MAX_STATEMENT_TIME=1000;
SET SESSION MAX_STATEMENT_TIME=2000;
SELECT MAX_STATEMENT_TIME=1000 * FROM table;