MySQL的show processlist:正在運行的線程

這個命令中最關鍵的就是state列,mysql列出的狀態主要有以下幾種:

Checking table   #正在檢查數據表(這是自動的)。 
Closing tables   #正在將表中修改的數據刷新到磁盤中,同時正在關閉已經用完的表。這是一個很快的操
作,如果不是這樣的話,就應該確認磁盤空間是否已經滿了或者磁盤是否正處於重負中。 
Connect Out      #複製從服務器正在連接主服務器。 
Copying to tmp table on disk #由於臨時結果集大於 tmp_table_size,正在將臨時表從內存存儲轉爲
磁盤存儲以此節省內存。 
Creating tmp table #正在創建臨時表以存放部分查詢結果。 
deleting from main table #服務器正在執行多表刪除中的第一部分,剛刪除第一個表。 
deleting from reference tables  #服務器正在執行多表刪除中的第二部分,正在刪除其他表的記錄。 
Flushing tables  #正在執行 FLUSH TABLES,等待其他線程關閉數據表。 
Killed   #發送了一個kill請求給某線程,那麼這個線程將會檢查kill標誌位,同時會放棄下一個kill請
求。MySQL會在每次的主循環中檢查kill標誌 
位,不過有些情況下該線程可能會過一小段才能死掉。如果該線程程被其他線程鎖住了,那麼kill請求會在鎖釋放時馬上生效。 
Locked    #被其他查詢鎖住了。 
Sending data  #正在處理 SELECT 查詢的記錄,同時正在把結果發送給客戶端。 
Sorting for group #正在爲 GROUP BY 做排序。 
Sorting for order  #正在爲 ORDER BY 做排序。 
Opening tables  #這個過程應該會很快,除非受到其他因素的干擾。例如,在
執 ALTER TABLE 或 LOCK TABLE 語句行完以前,數據表無法被其他線程打開。 正嘗試打開一個表。 
Removing duplicates  #正在執行一個 SELECT DISTINCT 方式的查詢,但是MySQL無法在前一個階段優化
掉那些重複的記錄。因此,MySQL需要再次去掉重複的記錄,然後再把結果發送給客戶端。 
Reopen table #獲得了對一個表的鎖,但是必須在表結構修改之後才能獲得這個鎖。已經釋放鎖,關閉數據
表,正嘗試重新打開數據表。 
Repair by sorting #修復指令正在排序以創建索引。 
Repair with keycache #修復指令正在利用索引緩存一個一個地創建新索引。它會比 Repair by sorting 慢些。 
Searching rows for update  #正在講符合條件的記錄找出來以備更新。它必須在 UPDATE 要修改相關的
記錄之前就完成了。 
Sleeping #正在等待客戶端發送新請求. 
System lock #正在等待取得一個外部的系統鎖。如果當前沒有運行多個mysqld服務器同時請求同一個表,
那麼可以通過增加 --skip-external-locking參數來禁止外部系統鎖。 
Upgrading lock 
INSERT DELAYED #正在嘗試取得一個鎖表以插入新記錄。 
Updating #正在搜索匹配的記錄,並且修改它們。 
INSERT DELAYED #已經處理完了所有待處理的插入操作,正在等待新的請求。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章