В MariaDB (+ MySQL) вы можете делать SHOW PROCESSLIST
получить список запросов в очереди / запущенных. Одна из полезных вещей - Time
поле.
Я обнаружил, что у меня есть ужасные запросы, которые запускаются и сидят, потребляя ресурсы, долгое время после того, как чей-то интерес изменился.
Я хотел бы иметь возможность выполнить "SHOW PROCESSLIST WHERE Time> 3600", чтобы найти запросы, которые выполняются более часа, но это синтаксическая ошибка.
Я также пробовал SELECT * FROM (SHOW PROCESSLIST) x WHERE Time > 3600
но безрезультатно.
Есть способ? (Очевидно, в идеальном мире я смог бы отследить, что отвечает за хитрые запросы!)
Я использую MariaDB 10.1.41
Вы можете запустить запрос к INFORMATION_SCHEMA.PROCESSLIST
таблица так:
select * from INFORMATION_SCHEMA.PROCESSLIST where Time > 3600;