文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


10.14.1 存取程序清單

下列討論列舉了程序資訊的來源、檢視程序資訊所需的權限,並說明程序清單項目的內容。

程序資訊的來源

程序資訊可從以下來源取得

threads 資料表與 SHOW PROCESSLISTINFORMATION_SCHEMA PROCESSLISTmysqladmin processlist 的比較如下

  • 存取 threads 資料表不需要互斥鎖,而且對伺服器效能的影響極小。其他來源會因為需要互斥鎖而產生負面效能影響。

    注意

    基於效能綱要(Performance Schema)的 processlist 資料表,提供了一種替代的 SHOW PROCESSLIST 實作方式。如同 threads 資料表,此資料表不需要互斥鎖(mutex),且具有更好的效能特性。詳細資訊請參閱第 29.12.22.7 節,「processlist 資料表」

  • threads 資料表會顯示其他來源不顯示的背景執行緒。它也為每個執行緒提供其他來源沒有的額外資訊,例如執行緒是前景或背景執行緒,以及與執行緒相關聯的伺服器內的位置。這表示 threads 資料表可以用於監控其他來源無法監控的執行緒活動。

  • 您可以啟用或停用效能綱要執行緒監控,如第 29.12.22.8 節,「threads 資料表」中所述。

基於這些原因,使用其他執行緒資訊來源執行伺服器監控的 DBA 可能會希望改為使用 threads 資料表進行監控。

sys 綱要的 processlist 檢視以更易於存取的格式呈現來自效能綱要 threads 資料表的資訊。sys 綱要的 session 檢視呈現有關使用者連線階段的資訊,類似於 sys 綱要的 processlist 檢視,但會過濾掉背景程序。

存取處理序清單所需的權限

對於大多數處理序資訊來源,如果您擁有 PROCESS 權限,您可以查看所有執行緒,甚至是屬於其他使用者的執行緒。否則(沒有 PROCESS 權限),非匿名使用者可以存取關於他們自己執行緒的資訊,但不能存取其他使用者的執行緒,而匿名使用者無法存取任何執行緒資訊。

效能綱要 threads 資料表也提供執行緒資訊,但資料表的存取使用不同的權限模型。請參閱第 29.12.22.8 節,「threads 資料表」

處理序清單項目的內容

每個處理序清單項目包含數個資訊片段。以下清單使用來自 SHOW PROCESSLIST 輸出的標籤描述它們。其他處理序資訊來源使用類似的標籤。

  • Id 是與執行緒相關聯的用戶端連線識別碼。

  • UserHost 指示與執行緒相關聯的帳戶。

  • db 是執行緒的預設資料庫,如果沒有選擇任何資料庫,則為 NULL

  • CommandState 指示執行緒正在執行的操作。

    大多數狀態對應於非常快速的操作。如果執行緒在給定的狀態中停留數秒,可能存在需要調查的問題。

    以下章節列出可能的 Command 值,以及按類別分組的 State 值。其中一些值的含義是不言而喻的。對於其他值,則提供了額外的描述。

    注意

    檢查處理序清單資訊的應用程式應注意,命令和狀態可能會變更。

  • Time 指示執行緒處於目前狀態的時間長度。在某些情況下,執行緒對目前時間的概念可能會被變更:執行緒可以使用 SET TIMESTAMP = value 變更時間。對於複本 SQL 執行緒,該值是最後一個複寫事件的時間戳記與複本主機的實際時間之間的秒數。請參閱第 19.2.3 節,「複寫執行緒」

  • Info 指示執行緒正在執行的陳述式,如果沒有執行任何陳述式,則為 NULL。對於 SHOW PROCESSLIST,此值僅包含陳述式的前 100 個字元。要查看完整的陳述式,請使用 SHOW FULL PROCESSLIST(或查詢不同的處理序資訊來源)。