tp_thread_state 表格針對執行緒集區建立以處理連線的每個執行緒都有一個資料列。
tp_thread_state 表格具有下列欄位
TP_GROUP_ID執行緒集區 ID。
TP_THREAD_NUMBER執行緒在其執行緒集區中的 ID。
TP_GROUP_ID和TP_THREAD_NUMBER一起提供表格中的唯一索引鍵。PROCESS_COUNT使用此執行緒的陳述式目前正在執行的 10 毫秒間隔。0 表示沒有陳述式正在執行,1 表示它在前 10 毫秒,依此類推。
WAIT_TYPE執行緒等待的類型。
NULL表示執行緒未被封鎖。否則,執行緒會因呼叫thd_wait_begin()而被封鎖,且該值會指定等待類型。tp_thread_group_stats表格的欄會累積每個等待類型的計數。xxx_WAITWAIT_TYPE值是一個描述等待類型的字串,如下表所示。表格 29.4 tp_thread_state 表格 WAIT_TYPE 值
等待類型 意義 THD_WAIT_SLEEP正在等待睡眠 THD_WAIT_DISKIO正在等待磁碟 I/O THD_WAIT_ROW_LOCK正在等待資料列鎖定 THD_WAIT_GLOBAL_LOCK正在等待全域鎖定 THD_WAIT_META_DATA_LOCK正在等待中繼資料鎖定 THD_WAIT_TABLE_LOCK正在等待表格鎖定 THD_WAIT_USER_LOCK正在等待使用者鎖定 THD_WAIT_BINLOG正在等待二進位記錄檔 THD_WAIT_GROUP_COMMIT正在等待群組提交 THD_WAIT_SYNC正在等待 fsync TP_THREAD_TYPE執行緒的類型。此欄中顯示的值是
CONNECTION_HANDLER_WORKER_THREAD、LISTENER_WORKER_THREAD、QUERY_WORKER_THREAD或TIMER_WORKER_THREAD的其中之一。THREAD_ID此執行緒的唯一識別符。該值與效能架構 (Performance Schema)
threads資料表中THREAD_ID欄位所使用的值相同。TIME_OF_ATTACH:時間戳記,顯示執行緒附加的時間,如果附加到連線;否則為
NULL。MARKED_STALLED:如果此執行緒已被停滯檢查程式執行緒標記為停滯,則此值為
True。STATE:可能的值取決於執行緒的類型,如
TP_THREAD_TYPE欄位所示。對於工作執行緒 (
QUERY_WORKER_THREAD),此值為Managing、Polling、Processing Direct、Processing Queued、Sleeping Consumer或Sleeping Reserve其中之一。對於連線處理常式執行緒 (
CONNECTION_HANDLER_WORKER_THREAD),此值為CH Processing、CH Sleeping Timed或CH Sleeping Indefinite其中之一。對於停滯檢查程式執行緒 (
TIMER_WORKER_THREAD),此值為SC Checking、SC Sleeping Short或SC Sleeping Long其中之一。
EVENT_COUNT:此執行緒處理的累積事件數量。
ACCUMULATED_EVENT_TIME:處理事件所花費的實際時間。
EXEC_COUNT:傳遞到伺服器以執行查詢(語句)的累積數量。
ACCUMULATED_EXEC_TIME:伺服器處理查詢所花費的實際時間。
tp_thread_state 資料表有一個索引;這是 TP_GROUP_ID 和 TP_THREAD_NUMBER 欄位的唯一索引。
不允許對 tp_thread_state 資料表使用 TRUNCATE TABLE。