文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁 (TGZ) - 258.2Kb
手冊頁 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  取得具名連線的執行計畫資訊

10.8.4 取得具名連線的執行計畫資訊

若要取得在具名連線中執行的可說明陳述式的執行計畫,請使用此陳述式

EXPLAIN [options] FOR CONNECTION connection_id;

EXPLAIN FOR CONNECTION 會傳回目前用來在給定連線中執行查詢的 EXPLAIN 資訊。由於資料(和支援統計資料)的變更,它可能會產生與在等效查詢文字上執行 EXPLAIN 不同的結果。這種行為差異對於診斷更短暫的效能問題可能很有用。例如,如果您在一個工作階段中執行一個需要很長時間才能完成的陳述式,在另一個工作階段中使用 EXPLAIN FOR CONNECTION 可能會產生關於延遲原因的有用資訊。

connection_id 是連線識別碼,從 INFORMATION_SCHEMA PROCESSLIST 資料表或 SHOW PROCESSLIST 陳述式取得。如果您具有 PROCESS 權限,則可以指定任何連線的識別碼。否則,您只能指定您自己的連線識別碼。在所有情況下,您都必須具有足夠的權限來解釋指定連線上的查詢。

如果具名連線未執行陳述式,則結果為空。否則,EXPLAIN FOR CONNECTION 僅在具名連線中執行的陳述式可說明時適用。這包括 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 狀態變數會指出執行的 EXPLAIN FOR CONNECTION 語句的數量。