mysql : show processlist 详解

最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。

首先是几条常用的SQL。

1、按客户端 IP 分组,看哪个客户端的链接数最多

select client_ip,count(client_ip) as client_num from (select substring_index(host,':' ,1) as client_ip from information_schema.processlist ) as connect_info group by client_ip order by client_num desc;

2、查看正在执行的线程,并按 Time 倒排序,看看有没有执行时间特别长的线程  

select * from information_schema.processlist where Command != 'Sleep' order by Time desc;

可复制查询结果到控制台,直接执行,杀死堵塞进程 3、找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀 (此处 5分钟 可根据自己的需要调整SQL标红处)

select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc;

  

4、查询线程及相关信息


show full processlist;

  

ID 为此线程ID,Time为线程运行时间,Info为此线程SQL

5、一堆不怎么看得解释

show processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS 权限。

root用户,可以看到全部线程运行情况

普通的activiti用户只能看到自己的

单独给activiti用户授PROCESS权限,(授权后需要退出重新登录)

show processlist 显示的信息都是来自MySQL系统库 information_schema 中的 processlist 表。所以使用下面的查询语句可以获得相同的结果:

select * from information_schema.processlist;

了解这些基本信息后,下面我们看看查询出来的结果都是什么意思:

Id: 就是这个线程的唯一标识,当我们发现这个线程有问题的时候,可以通过 kill 命令,加上这个Id值将这个线程杀掉。前面我们说了show processlist 显示的信息时来自information_schema.processlist 表,所以这个Id就是这个表的主键。User: 就是指启动这个线程的用户。Host: 记录了发送请求的客户端的 IP 和 端口号。通过这些信息在排查问题的时候,我们可以定位到是哪个客户端的哪个进程发送的请求。DB: 当前执行的命令是在哪一个数据库上。如果没有指定数据库,则该值为 NULL 。Command: 是指此刻该线程正在执行的命令。这个很复杂,下面单独解释Time: 表示该线程处于当前状态的时间。State: 线程的状态,和 Command 对应,下面单独解释。Info: 一般记录的是线程执行的语句。默认只显示前100个字符,也就是你看到的语句可能是截断了的,要看全部信息,需要使用 show full processlist。

下面我们单独看一下 Command 的值:

Binlog Dump: 主节点正在将二进制日志 ,同步到从节点Change User: 正在执行一个 change-user 的操作Close Stmt: 正在关闭一个Prepared Statement 对象Connect: 一个从节点连上了主节点Connect Out: 一个从节点正在连主节点Create DB: 正在执行一个create-database 的操作Daemon: 服务器内部线程,而不是来自客户端的链接Debug: 线程正在生成调试信息Delayed Insert: 该线程是一个延迟插入的处理程序Drop DB: 正在执行一个 drop-database 的操作Execute: 正在执行一个 Prepared StatementFetch: 正在从Prepared Statement 中获取执行结果Field List: 正在获取表的列信息Init DB: 该线程正在选取一个默认的数据库Kill : 正在执行 kill 语句,杀死指定线程Long Data: 正在从Prepared Statement 中检索 long dataPing: 正在处理 server-ping 的请求Prepare: 该线程正在准备一个 Prepared StatementProcessList: 该线程正在生成服务器线程相关信息Query: 该线程正在执行一个语句Quit: 该线程正在退出Refresh:该线程正在刷表,日志或缓存;或者在重置状态变量,或者在复制服务器信息Register Slave: 正在注册从节点Reset Stmt: 正在重置 prepared statementSet Option: 正在设置或重置客户端的 statement-execution 选项Shutdown: 正在关闭服务器Sleep: 正在等待客户端向它发送执行语句Statistics: 该线程正在生成 server-status 信息Table Dump: 正在发送表的内容到从服务器Time: Unused

show full processlist;命令详解 - MySQL相关推荐

  1. 转:mysql show processlist命令 详解

    转:mysql show processlist命令 详解 processlist 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 1.        进 ...

  2. show full processlist命令详解

    文章目录 show full PROCESSLIST命令详解 只列出前100条,如果想全列出请使用show full processlist; 参数 详细参考 show full PROCESSLIS ...

  3. MySQL中 show processlist命令详解

    文章目录 1.show processlist是什么? 2.show processlist怎么用? 3.show processlist参数? 4.命令: show status; 1.show p ...

  4. SHOW PROCESSLIST 命令详解 (查看锁表)

    为什么80%的码农都做不了架构师?>>>    SHOW PROCESSLIST显示哪些线程正在运行. show processlist;只列出前100条,如果想全列出请使用show ...

  5. mysql show processlist命令详解

    mysql 查看当前连接数 命令: show processlist; 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接. show processlist; ...

  6. mysql show processlist 命令详解

    命令格式 SHOW [FULL] PROCESSLIST SHOW PROCESSLIST显示哪些线程正在运行.您也可以使用mysqladmin processlist语句得到此信息.如果您有SUPE ...

  7. [转]mysql优化——show processlist命令详解

    本文转自:https://blog.csdn.net/sunqingzhong44/article/details/70570728 版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...

  8. show processlist 命令详解

    如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的 MySQL 帐户运行的线程). mysql> show processlist; +-–+--- ...

  9. mysql查询优化explain命令详解

    转载自 mysql查询优化explain命令详解 mysql查询优化的方法有很多种,explain是工作当中用的比较多的一种检查方式.explain翻译即解释,就是看mysql语句的查询解释计划,从解 ...

最新文章

  1. oc 协议 回调 静态成员_OC底层原理探究:Category、关联对象和block本质
  2. python 数据分析学习笔记 (第三章)
  3. 去除右下角淘宝网弹窗恶意广告!
  4. 循环: 打印1~10
  5. js验证开始日期不能大于结束日期_js前台判断开始时间是否小于结束时间
  6. Selenium 中文API
  7. vscode kite插件_微软发布 VS Code Python 插件 7 月更新
  8. 基于VS的连连看小游戏
  9. TFS 2010安装指南
  10. python爬取全球历年GDP数据
  11. 分享5个爬虫专业博客网站
  12. 小甲鱼Python3笔记
  13. BUUCTF easy misc
  14. UV-ARC符合铁路应用EN 50317-2002标准,可用于动车组、高铁受电弓电火花检测
  15. 灵飞经4 西城八部 第十八章 暗通款曲(三)
  16. 「Do.002」有道云笔记--好用但不安全
  17. 车载以太网 - 初识DoIP - 01
  18. attributes() 函数
  19. 计算机性能测评实验原理,水泵性能试验机测试系统工作原理及试验过程
  20. windows 如何做 Safari 测试

热门文章

  1. 使用javascript的网速测试代码
  2. 哪些软件可以拍照翻译成中文?这些办法值得一试
  3. 2008最新全套毕业设计(计算机/通讯/电子/自动化)
  4. 机器翻译--词语对齐
  5. 一句“嘿 Siri”背后隐藏了如此多的努力与小心思
  6. java opencv surf_OpenCV中的SURF算法介绍
  7. 深度学习TensorFlow环境配置及遗留的问题(cudatoolkit版本,TensorFlow版本)(四)
  8. vue3中动态引入BMap
  9. 《谷粒商城基础篇》分布式基础环境搭建
  10. java 获取系统时间 秒_JAVA获取当前系统时间System.currentTimeMillis()