Какие есть способы что бы ограничить время работы долгих запросов?
Например некоторые запросы которые делают select по неиндексированным полям могут очень прям долго занимать время.Что пробовал —
Код (Text):
$myPDO = newPDO(‘pgsql:host=127.0.0.1;dbname=db’, ‘root’, ‘root’, array( PDO::ATTR_TIMEOUT => 5, // in seconds PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION) );Насколько я понял это тоже самое что и
set statement_timeout TO 5000;
в первом запросе к базев php.ini
Код (Text):
archiving_query_max_execution_time = 10 live_query_max_execution_time = 5 max_execution_time = 10Также — ini_set(‘max_execution_time’, 10);
Но работает все как то не очень однозначно. Явно больше 10секунд работает запрос.
установлен nginx + php-fpm
Проблема в том что воркеры — php-fpm начинают кончаться если несколько таких запросов запустить.Какой самый лучший способ отсекать долго работающии запросы?
Также как мониторить висячие процессы php-fpm.
сделать их быстрыми