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


MySQL 9.0 參考手冊  /  ...  /  SHOW PROCESSLIST 陳述式

15.7.7.30 SHOW PROCESSLIST 陳述式

SHOW [FULL] PROCESSLIST
重要

INFORMATION SCHEMA 實作的 SHOW PROCESSLIST 已被棄用,並會在未來 MySQL 版本中移除。建議改為使用效能架構 (Performance Schema) 實作的 SHOW PROCESSLIST

MySQL 程序列表會顯示伺服器內執行緒所執行的目前操作。SHOW PROCESSLIST 陳述式是程序資訊的來源之一。如需此陳述式與其他來源的比較,請參閱程序資訊的來源

注意

有一個替代的 SHOW PROCESSLIST 實作,它是基於效能架構 (Performance Schema) processlist 表格,與預設的 SHOW PROCESSLIST 實作不同,它不需要互斥鎖,且具有較佳的效能特性。如需詳細資訊,請參閱第 29.12.22.7 節:「processlist 表格」

如果您具有 PROCESS 權限,則可以查看所有執行緒,甚至是屬於其他使用者的執行緒。否則(若沒有 PROCESS 權限),非匿名使用者可以存取有關其自身執行緒的資訊,但無法存取其他使用者的執行緒資訊,而匿名使用者則無法存取執行緒資訊。

若沒有 FULL 關鍵字,SHOW PROCESSLIST 只會顯示 Info 欄位中每個陳述式的前 100 個字元。

如果您收到 太多連線錯誤訊息,並想要找出發生了什麼事,則 SHOW PROCESSLIST 陳述式非常有用。MySQL 會保留一個額外的連線,以供具有 CONNECTION_ADMIN 權限(或已棄用的 SUPER 權限)的帳戶使用,以確保管理員應始終能夠連線並檢查系統(假設您沒有將此權限授與所有使用者)。

可以使用 KILL 陳述式終止執行緒。請參閱第 15.7.8.4 節:「KILL 陳述式」

SHOW PROCESSLIST 輸出的範例

mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1030455
  State: Waiting for source to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1004
  State: Has read all relay log; waiting for the replica
         I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 3112
   User: replikator
   Host: artemis:2204
     db: NULL
Command: Binlog Dump
   Time: 2144
  State: Has sent all binlog to replica; waiting for binlog to be updated
   Info: NULL
*************************** 4. row ***************************
     Id: 3113
   User: replikator
   Host: iconnect2:45781
     db: NULL
Command: Binlog Dump
   Time: 2086
  State: Has sent all binlog to replica; waiting for binlog to be updated
   Info: NULL
*************************** 5. row ***************************
     Id: 3123
   User: stefan
   Host: localhost
     db: apollon
Command: Query
   Time: 0
  State: NULL
   Info: SHOW FULL PROCESSLIST

SHOW PROCESSLIST 輸出具有以下欄位

  • Id

    連線識別碼。此值與 INFORMATION_SCHEMA PROCESSLIST 表格的 ID 欄位中顯示的值相同,並顯示在效能架構 (Performance Schema) threads 表格的 PROCESSLIST_ID 欄位中,且由執行緒內的 CONNECTION_ID() 函數傳回。

  • User

    發出陳述式的 MySQL 使用者。system user 值表示伺服器產生的非用戶端執行緒,以在內部處理任務,例如,延遲資料列處理常式執行緒或在複本主機上使用的 I/O (接收器) 或 SQL (套用程式) 執行緒。對於 system userHost 欄位中未指定主機。unauthenticated user 表示已與用戶端連線建立關聯,但尚未執行用戶端使用者驗證的執行緒。event_scheduler 表示監視排程事件的執行緒(請參閱第 27.5 節:「使用事件排程器」)。

    注意

    User 的值 system userSYSTEM_USER 權限不同。前者指定內部執行緒。後者區分系統使用者和一般使用者帳戶類別(請參閱第 8.2.11 節:「帳戶類別」)。

  • Host

    發出陳述式的用戶端主機名稱(system user 除外,它沒有主機)。TCP/IP 連線的主機名稱會以 host_name:client_port 格式回報,以便更輕鬆地判斷哪個用戶端正在執行哪個操作。

  • db

    執行緒的預設資料庫,如果未選取任何資料庫,則為 NULL

  • Command

    執行緒代表用戶端執行的命令類型,如果工作階段閒置,則為 Sleep。如需執行緒命令的描述,請參閱第 10.14 節:「檢查伺服器執行緒(程序)資訊」。此欄位的值對應於用戶端/伺服器通訊協定的 COM_xxx 命令和 Com_xxx 狀態變數。請參閱第 7.1.10 節:「伺服器狀態變數」

  • Time

    執行緒處於目前狀態的時間(以秒為單位)。對於複本 SQL 執行緒,該值是最後複寫的事件時間戳記與複本主機的實際時間之間的秒數。請參閱第 19.2.3 節:「複寫執行緒」

  • State

    表示執行緒正在執行的動作、事件或狀態。如需 State 值的描述,請參閱第 10.14 節:「檢查伺服器執行緒(程序)資訊」

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

  • Info

    執行緒正在執行的陳述式,如果未執行任何陳述式,則為 NULL。陳述式可能是傳送至伺服器的陳述式,如果陳述式執行其他陳述式,則為最內層的陳述式。例如,如果 CALL 陳述式執行正在執行 SELECT 陳述式的預存程序,則 Info 值會顯示 SELECT 陳述式。