mysql show processlist 命令詳解

來源:互聯網
上載者:User

標籤:

命令格式

SHOW [FULL] PROCESSLIST

SHOW PROCESSLIST顯示哪些線程正在運行。您也可以使用mysqladmin processlist語句得到此資訊。如果您有SUPER許可權,您可以看到所有線程。否則,您只能看到您自己的線程(也就是,與您正在使用的MySQL賬戶相關的線程)。如果您不使用FULL關鍵詞,則只顯示每個查詢的前100個字元。

 

MYSQL線程狀態說明

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

狀態 含義
After create 當線程建立表(包括暫存資料表)
Analyzing 線程正在分析MYISAM的key分布
checking permissions 線程正在檢查執行語句的許可權
Checking table 線程正在執行表check操作
cleaning up 線程已經處理完一個命令然後開始準備釋放記憶體和reset狀態變數
closing tables 線程把改變的表資料flush到磁碟然後關閉使用的表。這個操作應該是很快的,如果這個狀態長時間出現,要留意檢查磁碟的狀態。
converting HEAP to MyISAM 把一個記憶體中的暫存資料表轉換到磁碟上的MYISAM表
copy to tmp table 線程執行alter table語句。這個狀態出現在新的表結構已經建立但資料還在拷貝到新表之前。
Copying to group table 如果一個語句的group by和order by 條件不同,資料通過group by來排序然後拷貝到暫存資料表
Copying to tmp table 拷貝到記憶體中的暫存資料表
Copying to tmp table on disk 如果暫存資料表過大,伺服器要把記憶體中的暫存資料表拷貝到磁碟。
Creating index 對一個MYISAM 執行ALTER TABLE ... ENABLE KEYS
Creating sort index 線程通過執行一個暫存資料表來執行select語句
creating table 線程正在建立表(包括暫存資料表)
Creating tmp table 建立暫存資料表(在記憶體或者磁碟)上,如果表一開始在記憶體中到後面太大,暫存資料表就會轉換到磁碟上,而且狀態也會變成Copying to tmp table on disk
deleting from main table 伺服器正在執行一個多表delete語句的第一部分,也就是從第一張表刪除資料,並且保留行以及位移量資料以用來刪除其他表中的資料。
deleting from reference tables 伺服器正在執行一個多表delete語句的二部分
discard_or_import_tablespace 線程正在執行ALTER TABLE ... DISCARD TABLESPACE或者ALTER TABLE ... IMPORT TABLESPACE 語句.
end 這個狀態出現在ALTER TABLECREATE VIEWDELETE,INSERTSELECTUPDATE語句結束之後,但在清理以前。
executing 線程開始執行一個語句
Execution of init_command 線程在init_command系統變數中執行語句
freeing items 線程已經執行命令。一些釋放
Flushing tables 這個線程執行了FLUSH TABLES,而且等待所有的線程關閉表
FULLTEXT initialization 伺服器準備執行文本搜尋
init  
Killed 發送了kill 語句給這個查詢。這個語句在下次檢查kill標誌的時候,這個語句就應該放棄掉
Locked 查詢被其他的查詢鎖住了
logging slow query 線程正在把慢sql寫到慢查詢log檔案中
NULL  
login 直到線程授權成功以前都是這個狀態
manage keys 伺服器正在卡哭泣或者關閉表的索引
Opening tablesOpening table 線程正在開啟表。這個操作是很快的,除非有其他原因阻止了開啟操作,例如ALTER TABLE   LOCK TABLE
optimizing 伺服器進行中一個查詢的初始階段最佳化
preparing 進行中查詢最佳化
Purging old relay logs 線程刪除不需要的relay log檔案
query end 這個狀態出現在處理完以後但在凍結item之前
Reading from net 伺服器從網路讀取包
Removing duplicates 查詢使用了select distinct。mysq在發送資料到用戶端之前需要一個額外的過程來重複資料刪除的行
removing tmp table 在執行了select語句以後,線程正在刪除內部的暫存資料表
rename 線程正在重新命名表
rename result table 線程正在執行一個alter table語句,而且已經建立了新表,對新表重新命名來替換原始表。
Reopen tables 線程擷取了一個表的鎖。由於它已經得知它依賴的表結構已經發生了變化。線程需要釋放鎖、關閉表、然後嘗試重新開啟他。
Repair by sorting 修複代碼通過排序來建立索引。
Repair done 線程完成了對一個myisam表的多線程修複。
Repair with keycache 修複代碼正在通過key的緩衝建立key。
Rolling back 線程正在復原事物。
Saving state myisam的analysis和repair操作中,線程會把表的一些資訊例如表的行數、AUTO_INCREMENT的計數器以及key的分布都儲存到.MYI檔案的頭部
Searching rows for update 語句執行的第一個階段,找到所有滿足條件的行記錄
Sending data 線程在讀取和處理SELECT語句,發送資料到用戶端。由於語句需要大量的磁碟訪問,這個狀態會在語句的整個生命週期中佔據最長的一個狀態。
setup 線程開始進行ALTER TABLE 語句
Sorting for group 線程正在為group by 執行排序
Sorting for order 線程正在為order by 執行排序
Sorting index 在myisam表的最佳化操作中,進行索引頁的排序以便獲得更好的訪問效能。
Sorting result 對結果進行排序
statistics 伺服器正在計算統計資料從而來產生一個執行計畫。如果一個線程保留這個狀態很長的時間,意味著伺服器在執行其他的磁碟相關的工作。
System lock 線程正在請求和擷取一個內部和外部鎖。如果有這個狀態
Table lock System Lock後的另一個線程狀態。線程已經擷取了一個外部鎖,然後接下來要去擷取一個內部表鎖。
update 線程已經準備好去更新
Updating 現在正在找或者正在更新行
updating main table 伺服器正在執行一個多表update語句,正在更新第一張表,儲存行和位移量以用來更新其他表。
updating reference tables 伺服器正在執行一個多表update語句的第二部分,正在從其他表更新行
User lock 請求或者等待擷取一個鎖
User sleep 線程sleep
Waiting for release of readlock 等待一個全域的讀鎖
Waiting for tablesWaiting for table 線程獲得提示依賴的表結構發生了改變,線程需要重新開啟表來擷取新的結構。但是,重新開啟表是需要等待其他的線程關閉表。
Waiting on cond 線程正在等條件變成true
Waiting to get readlock 線程用FLUSH TABLES WITH READ LOCK語句,所以要獲得一個全域的讀鎖,這個狀態表示正在等這個鎖。
Writing to net 伺服器把包寫到網路

mysql show processlist 命令詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.