溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在MySQL數(shù)據(jù)庫中使用show processlist指令

發(fā)布時(shí)間:2021-03-23 15:46:23 來源:億速云 閱讀:424 作者:Leah 欄目:MySQL數(shù)據(jù)庫

怎么在MySQL數(shù)據(jù)庫中使用show processlist指令?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

 1. show processlist是什么

show processlist:通過查看mysql的官網(wǎng),可以發(fā)現(xiàn),其主要是查詢數(shù)據(jù)庫中哪些線程正在執(zhí)行,針對(duì)比較慢的線程(time的數(shù)值比較大的線程)我們可以將其kill掉。此外,show full processlist 返回的結(jié)果是實(shí)時(shí)變化的。

  2. show processlist怎么用

  有三種方式可以執(zhí)行show processlist,可以通過命令行、SQL語句、Navicat客戶端等。

  1) 命令行:SHOW FULL PROCESSLIST\G

  執(zhí)行結(jié)果如下:

mysql> SHOW FULL PROCESSLIST\G

*************************** 1. row ***************************
Id: 1
User: system user
Host:
db: NULL
Command: Connect
Time: 1030455
State: Waiting for master to send event
Info: NULL

*************************** 2. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 1004
State: Has read all relay log; waiting for the slave
    I/O thread to update it
Info: NULL

*************************** 3. row ***************************
Id: 3112
User: replikator
Host: artemis:2204
db: NULL
Command: Binlog Dump
Time: 2144
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL

*************************** 4. row ***************************
Id: 3113
User: replikator
Host: iconnect2:45781
db: NULL
Command: Binlog Dump
Time: 2086
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL

*************************** 5. row ***************************
Id: 3123
User: stefan
Host: localhost
db: apollon
Command: Query
Time: 0
State: NULL
Info: SHOW FULL PROCESSLIST
rows in set (0.00 sec)

  2) 可以通過sql語句查詢數(shù)據(jù)庫中相關(guān)信息的表

  select id, db, user, host, command, time, state, info from information_schema.processlist order by time desc

  3) 可以通過Navicat工具查看,如下圖是使用Navicat查詢到的截圖。

  3. show processlist怎么解讀

  下面對(duì)于使用該命令查詢到的結(jié)果進(jìn)行解讀。

  Id:鏈接mysql 服務(wù)器線程的唯一標(biāo)識(shí),可以通過kill來終止此線程的鏈接。

  User:當(dāng)前線程鏈接數(shù)據(jù)庫的用戶

  Host:顯示這個(gè)語句是從哪個(gè)ip 的哪個(gè)端口上發(fā)出的。可用來追蹤出問題語句的用戶

  db: 線程鏈接的數(shù)據(jù)庫,如果沒有則為null

  Command: 顯示當(dāng)前連接的執(zhí)行的命令,一般就是休眠或空閑(sleep),查詢(query),連接(connect)

  Time: 線程處在當(dāng)前狀態(tài)的時(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: 線程執(zhí)行的sql語句,如果沒有語句執(zhí)行則為null。這個(gè)語句可以使客戶端發(fā)來的執(zhí)行語句也可以是內(nèi)部執(zhí)行的語句

  4. show processlist結(jié)果怎么處理

  在上面的步驟中,我們可以查到每個(gè)線程的執(zhí)行時(shí)間等信息,因此針對(duì)執(zhí)行時(shí)間比較長(zhǎng)的線程,我們可以直接將其kill掉,直接執(zhí)行 kill Id號(hào)即可。

  如果要查時(shí)間超過5分鐘的,可以拼接并執(zhí)行以下sql

select concat('kill ', id, ';') from information_schema.processlist where command != 'Sleep' and time > 5*60 order by time desc

關(guān)于怎么在MySQL數(shù)據(jù)庫中使用show processlist指令問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI