濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL數據庫show processlist指令使用解析

MySQL數據庫show processlist指令使用解析

熱門標簽:巫師三血與酒地圖標注 400電話申請信用卡 走過哪個省地圖標注 銷售語音電話機器人 外呼系統(tǒng)電銷受騙 在哪里申請400電話 安徽ai電話電銷機器人有效果嗎 常州網絡外呼系統(tǒng)開發(fā) 萊西市地圖標注

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

  1. show processlist是什么

show processlist:通過查看mysql的官網,可以發(fā)現,其主要是查詢數據庫中哪些線程正在執(zhí)行,針對比較慢的線程(time的數值比較大的線程)我們可以將其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語句查詢數據庫中相關信息的表

  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:當前線程鏈接數據庫的用戶

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

  db: 線程鏈接的數據庫,如果沒有則為null

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

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

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

  Info: 線程執(zhí)行的sql語句,如果沒有語句執(zhí)行則為null。這個語句可以使客戶端發(fā)來的執(zhí)行語句也可以是內部執(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

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

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

標簽:鞍山 黃石 果洛 赤峰 河北 來賓 陽江 煙臺

巨人網絡通訊聲明:本文標題《MySQL數據庫show processlist指令使用解析》,本文關鍵詞  MySQL,數據庫,show,processlist,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL數據庫show processlist指令使用解析》相關的同類信息!
  • 本頁收集關于MySQL數據庫show processlist指令使用解析的相關信息資訊供網民參考!
  • 推薦文章
    大英县| 从化市| 四子王旗| 伊金霍洛旗| 平原县| 凤凰县| 颍上县| 乐陵市| 兴国县| 定襄县| 河西区| 通州区| 名山县| 东方市| 长阳| 博兴县| 玉龙| 修武县| 天津市| 资阳市| 呼和浩特市| 文登市| 内江市| 梁平县| 丰台区| 三明市| 绍兴县| 巧家县| 井冈山市| 南宁市| 逊克县| 延津县| 绍兴县| 滦平县| 南澳县| 辽阳县| 安顺市| 荥阳市| 改则县| 新余市| 信宜市|