SHOW RUNNING QUERIES 无效

版本:3.2.2-269e832

select a.*,b.* from information_schema.fe_metrics as a left join (select * from information_schema.fe_metrics) as b on a.FE_ID = b.FE_ID limit 10000;

执行上面SQL,并且立即执行SHOW RUNNING QUERIES,返回结果是empty
image

但是执行SHOW PROCESSLIST的时候可以看到这个SQL正在执行

执行上面SQL,并且立即执行SHOW RUNNING QUERIES,这是在一个会话里串行执行的吗?

不是的 是在另一个窗口使用Mysql命令重新连接执行的,是这个命令只能查看当前session正在执行的吗?

看你SHOW PROCESSLIST的状态,这个sql应该是已经执行完了,Time=0。如果是在执行的话show processlist的结果里Time会不断增加

有点忘记当时测试的详细细节了,所以重新测试了一下,执行上面相同SQL之后,从另一个终端窗口立即执行

SHOW RUNNING QUERIES 

返回empty之后再执行

SHOW FULL PROCESSLIST

可以看到是有记录的,显示正在运行并且持续了6s

您好,show running queries是查询队列相关的一个命令,在开启查询队列的情况下能用这个命令查看被 query queue 管理的查询,包括 pending 和 running 状态。不被 query queue 管理的查询不会在其中显示。另外查询查询 information_schema 和各种系统表是不走query queue的。

如果本意是查看当前执行中的查询,可以使用 show proc ‘/current_queries’;