在 MariaDB (+ MySQL) 中,您可以SHOW PROCESSLIST
获取队列/正在运行的查询列表。其中一个有用的东西是字段Time
。
我发现我有一些糟糕的查询被触发,并且在任何人的兴趣都转移之后很长时间仍在消耗资源。
我希望能够执行“SHOW PROCESSLIST WHERE Time > 3600”来查找实时且已运行一个多小时的查询,但这是一个语法错误。
我也尝试过SELECT * FROM (SHOW PROCESSLIST) x WHERE Time > 3600
,没有结果。
有办法吗?(显然在理想世界中,我能够找出导致这些可疑查询的原因!)
我使用的是 MariaDB 10.1.41
答案1
INFORMATION_SCHEMA.PROCESSLIST
您可以像这样对表运行查询:
select * from INFORMATION_SCHEMA.PROCESSLIST where Time > 3600;