processlist命令 查看mysql 線程

processlist命令的輸出結(jié)果顯示了有哪些線程在運(yùn)行,可以幫助識(shí)別出有問題的查詢語句,兩種方式使用這個(gè)命令。

1. 進(jìn)入mysql/bin目錄下輸入mysqladmin processlist;
2. 啟動(dòng)mysql,輸入show processlist(關(guān)閉某一線程 kill id;);
如果有 SUPER 權(quán)限,則可以看到全部的線程,否則,只能看到自己發(fā)起的線程(這是指,當(dāng)前對(duì)應(yīng)的MySQL帳戶運(yùn)行的線程)。
得到數(shù)據(jù)形式如下(只截取了三條):
mysql> show processlist;
+—–+————-+——————–+——-+———+——-+———————————-+———-
| Id | User | Host | db | Command | Time| State | Info
+—–+————-+——————–+——-+———+——-+———————————-+———-
|207|root |192.168.0.20:51718 |mytest | Sleep | 5 | | NULL
|208|root |192.168.0.20:51719 |mytest | Sleep | 5 | | NULL
|220|root |192.168.0.20:51731 |mytest |Query | 84 | Locked |
select bookname,culture,value,type from book where id=001
先簡單說一下各列的含義和用途,第一列,id,不用說了吧,一個(gè)標(biāo)識(shí),你要kill一個(gè)語句的時(shí)候很有用。user列,顯示單前用戶,如果不是root,這個(gè)命令就只顯示你權(quán)限范圍內(nèi)的sql語句。host列,顯示這個(gè)語句是從哪個(gè)ip的哪個(gè)端口上發(fā)出的。呵呵,可以用來追蹤出問題語句的用戶。db列,顯示這個(gè)進(jìn)程目前連接的是哪個(gè)數(shù)據(jù)庫。command列,顯示當(dāng)前連接的執(zhí)行的命令,一般就是休眠(sleep),查詢(query),連接(connect)。time列,此這個(gè)狀態(tài)持續(xù)的時(shí)間,單位是秒。state列,顯示使用當(dāng)前連接的sql語句的狀態(tài),很重要的列,后續(xù)會(huì)有所有的狀態(tài)的描述,請(qǐng)注意,state只是語句執(zhí)行中的某一個(gè)狀態(tài),一個(gè)sql語句,已查詢?yōu)槔赡苄枰?jīng)過copying to tmp table,Sorting result,Sending data等狀態(tài)才可以完成,info列,顯示這個(gè)sql語句,因?yàn)殚L度有限,所以長的sql語句就顯示不全,但是一個(gè)判斷問題語句的重要依據(jù)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享