做爲一個開發人員或者數據庫管理員,學會檢查數據庫運行狀況是必不可少的工做。形成MySQL線程卡頓的緣由有不少,可是不管是哪一種緣由,咱們發現問題以後的第一要務就是解決問題,防止問題繼續惡化。那麼,應該如何操做?mysql
有兩種方法能夠查看正在運行的線程。sql
進入到mysql/bin目錄下,執行mysqladmin processlist數據庫
連上MySQL,輸入show processlist;命令查看線程
咱們用Navicat登陸localhost簡單看一下,結果以下:blog
結果中每一行對應一個鏈接,每一列的含義以下:進程
Id:thread_id,線程id;ssl
User:用戶,若是你不是root,那麼只能看到權限範圍內的SQL;開發
Host:能夠看到來源IP和端口,結合netstat或lsof命令可快速定位進程;io
db:當前DB實例;class
Command:當前執行的命令,一般是sleep、query、connect ;
Time:當前狀態持續了多少秒;
State:當前狀態;
Info:當前語句;
若是是鏈接數過小了,能夠適當修改一下,超時時間太長的話一樣直接改小就行。
其次,用戶增加太猛,這個時候就須要添加機器了。
執行kill id命令便可殺死卡頓的線程
形成線程卡頓的緣由有不少,可是不少時候一般只有兩種:
鎖競爭
慢查詢