INFORMATION_SCHEMA.PROCESSLIST
已棄用,並會在未來的 MySQL 版本中移除。因此,使用此表格的 SHOW PROCESSLIST
實作也已棄用。建議改用 Performance Schema 的 PROCESSLIST
實作。
MySQL 處理程序清單會顯示伺服器中執行的執行緒集合目前正在執行的作業。PROCESSLIST
表格是處理程序資訊的來源之一。如需此表格與其他來源的比較,請參閱處理程序資訊的來源。
PROCESSLIST
表格具有這些欄位
ID
連線識別碼。這與
SHOW PROCESSLIST
陳述式的Id
欄位中顯示的值相同,在 Performance Schemathreads
表格的PROCESSLIST_ID
欄位中顯示,並由執行緒中的CONNECTION_ID()
函數傳回。USER
發出陳述式的 MySQL 使用者。值
system user
是指伺服器為了處理內部任務而產生的非用戶端執行緒,例如,延遲資料列處理常式執行緒,或複本主機上使用的 I/O 或 SQL 執行緒。對於system user
,Host
欄位中沒有指定主機。unauthenticated user
是指已與用戶端連線建立關聯,但尚未驗證用戶端使用者的執行緒。event_scheduler
是指監視排程事件的執行緒(請參閱第 27.4 節,「使用事件排程器」)。注意USER
的值system user
與SYSTEM_USER
權限不同。前者指定內部執行緒。後者區分系統使用者和一般使用者帳戶類別(請參閱第 8.2.11 節,「帳戶類別」)。HOST
發出陳述式的用戶端主機名稱(
system user
除外,它沒有主機)。TCP/IP 連線的主機名稱會以
格式報告,以方便判斷哪個用戶端正在執行哪些動作。host_name
:client_port
DB
執行緒的預設資料庫,如果未選取,則為
NULL
。COMMAND
執行緒代表用戶端執行的命令類型,如果工作階段處於閒置狀態,則為
Sleep
。如需執行緒命令的說明,請參閱第 10.14 節,「檢查伺服器執行緒(處理程序)資訊」。此欄位的值對應於用戶端/伺服器協定的COM_
命令和xxx
Com_
狀態變數。請參閱第 7.1.10 節,「伺服器狀態變數」。xxx
TIME
執行緒處於目前狀態的秒數。對於複本 SQL 執行緒,此值為最後複寫事件的時間戳記與複本主機的實際時間之間相差的秒數。請參閱第 19.2.3 節,「複寫執行緒」。
STATE
指出執行緒正在執行的動作、事件或狀態。有關
STATE
值的說明,請參閱第 10.14 節,「檢視伺服器執行緒(程序)資訊」。大多數狀態對應於非常快速的操作。如果執行緒在給定狀態中停留數秒,則可能存在需要調查的問題。
INFO
執行緒正在執行的陳述式,如果沒有執行任何陳述式,則為
NULL
。該陳述式可能是傳送至伺服器的陳述式,或者如果是執行其他陳述式的陳述式,則為最內層的陳述式。例如,如果CALL
陳述式執行一個正在執行SELECT
陳述式的預存程序,則INFO
值會顯示SELECT
陳述式。
注意事項
PROCESSLIST
是一個非標準的INFORMATION_SCHEMA
表格。與
SHOW PROCESSLIST
陳述式的輸出類似,PROCESSLIST
表格提供有關所有執行緒的資訊,即使是屬於其他使用者的執行緒,如果您擁有PROCESS
權限。否則(沒有PROCESS
權限),非匿名使用者可以存取有關自己執行緒的資訊,但不能存取其他使用者的執行緒資訊,而匿名使用者則無法存取執行緒資訊。如果 SQL 陳述式參考
PROCESSLIST
表格,MySQL 會在陳述式執行開始時一次性填入整個表格,因此在陳述式執行期間具有讀取一致性。對於多陳述式交易,則沒有讀取一致性。
下列陳述式是等效的
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
SHOW FULL PROCESSLIST
您可以藉由檢查伺服器狀態變數 Deprecated_use_i_s_processlist_count
和 Deprecated_use_i_s_processlist_last_timestamp
的值,取得有關此表格使用情況的資訊。Deprecated_use_i_s_processlist_count
顯示自上次伺服器重新啟動以來存取 PROCESSLIST
表格的次數;Deprecated_use_i_s_processlist_last_timestamp
提供上次存取表格的時間,以 Unix 時間戳記表示。