怎么查看服務器的運行情況,比如多少查詢,管理客戶端的查詢等:

show processlist

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,不用說了吧,一個標識,你要kill一個語句的時候很有用,比如我們進行了一個非常耗時的查詢,想停止的時候,就只有采用這個命令了。

user列,顯示當前用戶,如果不是root,這個命令就只顯示你權限范圍內的sql語句。

host列,顯示這個語句是從哪個ip的哪個端口上發出的,可以用來追蹤出問題語句的用戶。

db列,顯示這個進程目前連接的是哪個數據庫。

command列,顯示當前連接的執行的命令,一般就是休眠(sleep),查詢 (query),連接(connect)。time列,此這個狀態持續的時間,單位是秒。

state列,顯示使用當前連接的sql語句的狀態,很重要的列,后續會有所有的狀態的描述,請注意,state只是語句執行中的某一個狀態,一個sql語句,已查詢為例,可能需要經過copying to tmp table,Sorting result,Sending data等狀態才可以完成,info列,顯示這個sql語句


注意權限,通常只能看到自己的查詢process,是看不到其他人的process的。