查看mysql進程--show processlist

show processlist 查看當前運行狀態。
mysql> show processlist;
下面介紹下各列的含義:
id ,線程編號,當要關閉某一進程時執行  kill id
user 列,顯示當前進程用戶;
host 列,顯示當前進程是從哪一個 IP 地址和哪一個端口號發出來的;
db 列,顯示當前這個進程目前鏈接的是哪一個數據庫;
command 列,顯示當前鏈接進程所執行命令的類型或狀態,通常就是休眠( sleep ),查詢( query ),鏈接 connect );
time 列,這個狀態持續的時間,單位是秒;
state 列,顯示使用當前鏈接 sql 語句的狀態,如查詢語句,可能中間須要經歷 copying to tmp table Sorting result Sending data 等狀態才能夠完 成;
info 列,顯示這個鏈接所執行的 sql 語句,由於長度有限,因此長的 sql 語句就顯示不全,可是一個判斷問題語句的重要依據。
 
mysql 列出 state 的狀態主要有如下幾種:
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
正在搜索匹配的記錄,而且修改它們。

User Lock
正在等待  GET_LOCK()

Waiting for tables
該線程獲得通知,數據表結構已經被修改了,須要從新打開數據表以取得新的 結構。而後,爲了能從新打開數據表,必須等到全部其餘線程關閉這個表。如下幾種狀況下會產生這個通知: FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE,   OPTIMIZE TABLE

waiting for handler insert
INSERT DELAYED 
已經處理完了全部待處理的插入操做,正在 等待新的請求。
大部分狀態對應很快的操做,只要有一個線程保持同一個狀態好幾秒鐘,那麼 多是有問題發生了,須要檢查一下。
還有其它的狀態沒在上面中列出來,不過它們大部分只是在查看服務器是否有 存在錯誤是才用得着。
相關文章
相關標籤/搜索