天天看點

【MySQL】常見的mysql 程序state

analyzing

線程是對myisam 表的統計資訊做分析(例如, analyze table )。

checking permissions

線程是檢查伺服器是否具有所需的權限來執行該語句。

checking table

線程正在執行表檢查操作。

cleaning up

線程處理一個指令,并正準備以釋放記憶體和重置某些狀态變量。

closing tables

線程是改變表中的資料重新整理到磁盤和關閉使用的表。 這應該是一個快速的操作。 如果沒有,你應該确認你沒有一個完整的磁盤和磁盤是不是在十分繁重的情況下使用。

converting heap to myisam

線程是從轉換内部臨時表memory記憶體表磁盤myisam表。

copy to tmp table

線程正在處理一個alter table語句。 這種狀态發生後,與新結構的表已建立,但前行複制到它。

copying to group table

如果語句有不同的order by和group by标準,按組排序的行複制到一個臨時表。

copying to tmp table

伺服器複制到記憶體中的臨時表。

copying to tmp table on disk

伺服器複制到一個臨時表在磁盤上。 臨時結果集已經變得過于龐大(見7.8.4節,“mysql如何使用内部臨時表” )。 是以,線程從記憶體中的臨時表基于磁盤的格式,以節省記憶體。

creating index

線程正在處理alter table ... enable keys alter table ... enable keys為myisam myisam表。

creating sort index

線程正在處理一個select就是使用内部臨時表解決。

creating table

線程建立一個表。 這包括建立臨時表。

creating tmp table

線程是建立一個臨時表在記憶體或磁盤上。 如果表是在記憶體中建立,但後來被轉換成一個磁盤上的表,在該操作的copying to tmp table on disk在磁盤上。

deleting from main table

伺服器正在執行多表删除的第一部分。 它隻能從第一個表中删除,并儲存列和删除從其他表(參考)偏移。

deleting from reference tables

伺服器正在執行多表删除的第二部分,從其他表中删除比對的行。

discard_or_import_tablespace

線程正在處理一個alter table ... discard tablespace alter table ... discard tablespace或alter table ... import tablespace alter table ... import tablespace語句。

end

這發生在年底前的清理alter table , create view , delete , insert , select或update語句。

executing

線程已開始執行語句。

execution of init_command

線程正在執行中的價值陳述init_command系統變量。

freeing items

線程已執行的指令。 釋放一些在這種狀态下完成的項目,涉及的查詢緩存。 這種狀态通常後跟cleaning up 。

flushing tables

線程正在執行flush tables ,等待所有線程關閉其表。

fulltext initialization

該伺服器是準備執行一個自然語言的全文檢索。

init

這發生之前的初始化alter table , delete , insert , select或update語句。 伺服器在這種狀态下采取的行動包括沖洗二進制日志中innodb日志,和一些查詢緩存清理操作。

對于end狀态,以下操作可能會發生的事情:

更改後删除表中的資料查詢的緩存條目

二進制日志中寫一個事件

釋放記憶體緩沖區,包括為斑點

killed

有人發送一個kill線程的語句,它應該中止在下一次檢清除死标志。 檢查該标志是在每個mysql中的主要循環,但在某些情況下可能還需要很短的時間為線程死亡。 如果線程是由其他線程鎖定,殺死盡快生效的其他線程釋放它的鎖。

locked

查詢被鎖定由另一個查詢。

logging slow query

線程正在寫一慢查詢日志的語句。

null

這種狀态是用于show processlist狀态。

login

連接配接線程的初始狀态,直到用戶端已成功通過身份驗證。

opening tables , opening table

線程試圖打開一個表。 這應該是非常快的過程中,除非有阻止打開。 例如,一個alter table或lock table語句可以防止打開一個表的語句,直到完成。 您的table_cache值足夠大,這也是值得一試。

optimizing

伺服器執行查詢的初始優化。

preparing

這種狀态出現在查詢優化過程中。

purging old relay logs

線程是消除不必要的中繼日志檔案。

query end

這種狀态發生後處理查詢,但在此freeing items的項目狀态。

reading from net

伺服器是閱讀從網絡資料包。

removing duplicates

查詢使用select distinct在這樣一種方式是mysql不能優化掉在早期階段的不同操作。 正因為如此,mysql需要一個額外的的階段,将結果發送到用戶端之前删除所有重複行。

removing tmp table

線程是消除處理後,内部的select表select語句。 如果沒有建立臨時表,這種狀态是不使用。

rename

線程重命名表。

rename result table

線程正在處理一個alter table語句,建立新表,并重新命名它來取代原來的表。

reopen tables

線程有一個表鎖,但注意到後鎖底層表結構改變。 它釋放的鎖,關閉表,并試圖重新打開它。

repair by sorting

修複代碼是使用排序建立索引。

repair done

該線程已完成了一個多線程的myisam表。

repair with keycache

修複代碼是使用建立密鑰通過關鍵緩存。 這是遠遠高于速度repair by sorting進行排序。

rolling back

線程復原事務。

saving state

如修理或分析myisam myisam表操作,線程是節能的新表的狀态.myi檔案頭。 國家包括行數,如資訊auto_increment計數器,以及關鍵的分布。

searching rows for update

線程正在做第一階段前更新他們找到所有比對的行。 這工作要做, update update正在改變,是用來尋找所涉及的行的索引。

sending data

線程處理一個select語句行,将資料發送到用戶端。 因為在這個狀态發生的操作往往執行大量的磁盤通路(讀取),它往往是在一個給定的查詢的生命周期最長的運作狀态。

setup

線程開始一個alter table操作。

sorting for group

線程是做一個分類,以group by集團。

sorting for order

線程是做來滿足order by排序。

sorting index

線程排序索引的網頁,更高效的通路myisam表的優化操作。

sorting result

對于select語句,這是creating sort index類似,但nontemporary表。

statistics

伺服器計算統計資料,以制定一個查詢執行計劃。 如果一個線程處于這種狀态很長一段時間,伺服器可能是磁盤綁定執行其他工作。

system lock

該線程将要求或正在等待内部或外部的系統鎖表。 如果這種狀态是造成外部鎖的請求和您不使用多個mysqld的通路相同的myisam myisam表,你可以禁用與外部系統--skip-external-locking鎖定選項。 然而,外部鎖定是預設禁用的,是以這個選項很可能不會有任何效果。 show profile ,這種狀态意味着線程請求鎖(不等待)。

table lock

後的下一個線程狀态system lock鎖定。 線程已經收購了外部鎖定,并要求内部表鎖。

updating

線程正在尋找要更新的行和更新他們。

updating main table

伺服器正在執行多表更新的第一部分。 它是隻更新第一個表,并節省列和用于更新其他表(參考)偏移。

updating reference tables

伺服器正在執行多表更新的第二部分和更新從其他表比對的行。

user lock

線程請求或要求與咨詢鎖等待get_lock()調用。 show profile ,這種狀态意味着線程請求鎖(不等待)。

waiting for release of readlock

線程正在等待另一個線程(與獲得全局讀鎖flush tables with read lock tables)被釋放。

waiting for tables , waiting for table

線程得到一個表的基本結構發生了變化的通知,它需要重新打開表,以擷取新的結構。 然而,重新打開表,它必須等到所有其他線程已經關閉了表中的問題。

此通知發生,如果另一個線程已flush tables或桌子上的問題下面的語句之一flush tables tbl_name tbl_name alter table , rename table table repair table table analyze table table, optimize table table 。

waiting on cond

在該線程正在等待一個條件,成為真正的一般狀态。 沒有特定的狀态資訊是可用的。

waiting to get readlock

線程已發出一個flush tables with read lock語句獲得全局讀鎖,并正在等待擷取鎖。

writing to net

伺服器寫一個資料包到網絡上。

 【via 網際網路】

繼續閱讀