佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > MySQL數(shù)據(jù)庫show processlist指令使用解析

MySQL數(shù)據(jù)庫show processlist指令使用解析

熱門標簽:呼叫中心市場需求 百度競價排名 服務外包 網(wǎng)站排名優(yōu)化 AI電銷 地方門戶網(wǎng)站 Linux服務器 鐵路電話系統(tǒng)

  在實際項目開發(fā)中,如果我們對數(shù)據(jù)庫的壓力比較大,比如有大批量的查詢或者插入等sql,尤其是多線程插入等情況,針對部分執(zhí)行比較慢的sql,我們可以將其kill掉,常用的一個命令就是show processlist

  1. show processlist是什么

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

  2. show processlist怎么用

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

  1) 命令行:SHOW FULL PROCESSLIST\G

  執(zhí)行結果如下:

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ù)庫中相關信息的表

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

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

  3. show processlist怎么解讀

  下面對于使用該命令查詢到的結果進行解讀。

  Id:鏈接mysql 服務器線程的唯一標識,可以通過kill來終止此線程的鏈接。

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

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

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

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

  Time: 線程處在當前狀態(tài)的時間,單位是秒

  State:顯示使用當前連接的sql語句的狀態(tài),很重要的列,后續(xù)會有所有的狀態(tài)的描述,請注意,state只是語句執(zhí)行中的某一個狀態(tài),一個 sql語句,已查詢?yōu)槔?,可能需要?jīng)過copying to tmp table,Sorting result,Sending data等狀態(tài)才可以完成

  Info: 線程執(zhí)行的sql語句,如果沒有語句執(zhí)行則為null。這個語句可以使客戶端發(fā)來的執(zhí)行語句也可以是內(nèi)部執(zhí)行的語句

  4. show processlist結果怎么處理

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySQL通過show processlist命令檢視性能的講解
  • MySQL SHOW PROCESSLIST協(xié)助故障診斷全過程
  • mysql show processlist 顯示mysql查詢進程
  • 通過mysql show processlist 命令檢查mysql鎖的方法
  • Ubuntu下Mysql 常用指令及中文亂碼問題
  • mysql中show指令使用方法詳細介紹
  • 關于在php.ini中添加extension=php_mysqli.dll指令的說明

標簽:黃山 衡水 湘潭 銅川 仙桃 湖南 崇左 蘭州

巨人網(wǎng)絡通訊聲明:本文標題《MySQL數(shù)據(jù)庫show processlist指令使用解析》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    青冈县| 府谷县| 宿迁市| 南通市| 宝丰县| 九龙县| 民和| 山东省| 易门县| 台中县| 农安县| 砀山县| 阿图什市| 马公市| 日土县| 临海市| 屏东县| 徐闻县| 于田县| 海城市| 上林县| 越西县| 邻水| 班戈县| 赤壁市| 浦北县| 绥中县| 兴隆县| 商河县| 务川| 平泉县| 大安市| 吉首市| 象山县| 安达市| 舟山市| 凤台县| 喀喇沁旗| 克什克腾旗| 师宗县| 灵台县|