8.8.4 获取命名连接的执行计划信息

要获得在命名 Connecting 执行的可解释语句的执行计划,请使用以下语句:

EXPLAIN [options] FOR CONNECTION connection_id;

连接说明返回当前用于在给定 Connecting 执行查询的EXPLAIN信息。由于数据的变化(和支持的统计数据),与在等效查询文本上运行EXPLAIN可能会产生不同的结果。这种行为上的差异对于诊断更多瞬时性能问题很有用。例如,如果您在一个会话中运行需要很长时间才能完成的语句,则在另一个会话中使用连接说明可能会产生有关延迟原因的有用信息。

如果命名连接未执行语句,则结果为空。否则,EXPLAIN FOR CONNECTION仅在可解释在命名 Connecting 执行的语句时适用。这包括SELECTDELETEINSERTREPLACEUPDATE。 (但是,EXPLAIN FOR CONNECTION不适用于预备语句,甚至不适用于那些类型的预备语句.)

如果命名连接正在执行一个可解释的语句,则输出将是您在语句本身上使用EXPLAIN所获得的结果。

如果命名连接正在执行不可解释的语句,则会发生错误。例如,您无法命名当前会话的连接标识符,因为EXPLAIN无法解释:

mysql> SELECT CONNECTION_ID();
+-----------------+
| CONNECTION_ID() |
+-----------------+
|             373 |
+-----------------+
1 row in set (0.00 sec)

mysql> EXPLAIN FOR CONNECTION 373;
ERROR 1889 (HY000): EXPLAIN FOR CONNECTION command is supported
only for SELECT/UPDATE/INSERT/DELETE/REPLACE

Com_explain_other状态变量指示已执行的连接说明条语句的数量。

首页