如何在mysql中获取正在运行的进程的查询计划

时间:2015-08-11 11:29:13

标签: mysql

我可以使用show processlist;查看当前正在运行的进程。它为我提供了正在运行的查询的部分文本。 我想知道如何使用Id来查看此流程的查询计划。

mysql的“Explain”命令接受表名或完整查询,但它不接受正在运行的查询的id。

2 个答案:

答案 0 :(得分:1)

MySQL 5.7具有新功能,可使用EXPLAIN FOR CONNECTION检查运行查询的执行计划。

<强> You can visit this article for more details.

EXPLAIN [options] FOR CONNECTION connection_id;

答案 1 :(得分:0)

你必须写这样的函数。

select info into @query from information_schema.processlist where id=3206933;
SET @stmt = CONCAT('explain ', @query);
use `database`
PREPARE stmt FROM @stmt;
EXECUTE stmt;