一、命令概述:

mysql show full processlist 用来查看当前线程处理情况,具体信息请参考官网:https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html

show full processlist 返回的结果是实时变化的,是对mysql链接执行的现场快照,所以用来处理突发事件非常有用。

一般用到 show processlist 或 show full processlist 都是为了查看当前 mysql 是否有压力,都在跑什么语句,当前语句耗时多久了,有没有什么慢 SQL 正在执行之类的

可以看到总共有多少链接数,哪些线程有问题(time是执行秒数,时间长的就应该多注意了),然后可以把有问题的线程 kill 掉,这样可以临时解决一些突发性的问题。

有时候一个快照可能看不出什么问题,那么可以频发的刷新试试

二、命令详解:

下面来看一下运行:show full processlist命令的详解,我们可以通过三种方式来查看命令运行的结果:

1、通过SHOW FULL PROCESSLIST命令查看:

mysql> SHOW FULL PROCESSLIST\G*************************** 1. row ***************************Id: 1User: system userHost:db: NULLCommand: ConnectTime: 1030455State: Waiting for master to send eventInfo: NULL*************************** 2. row ***************************Id: 2User: system userHost:db: NULLCommand: ConnectTime: 1004State: Has read all relay log; waiting for the slaveI/O thread to update itInfo: NULL*************************** 3. row

2、通过查询链接线程相关的表来查看快照

  select id, db, user, host, command, time, state, infofrom information_schema.processlistorder by time desc 

3、通过navicat中的【工具】=> 【服务器监控】进行查看结果如下:

下面针对每列做下介绍:

Id:链接mysql 服务器线程的唯一标识,可以通过kill来终止此线程的链接。

User:当前线程链接数据库的用户

Host:显示这个语句是从哪个ip 的哪个端口上发出的。可用来追踪出问题语句的用户

db: 线程链接的数据库,如果没有则为null

Command: 显示当前连接的执行的命令,一般就是休眠或空闲(sleep),查询(query),连接(connect)

Time: 线程处在当前状态的时间,单位是秒

State:显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,一个 sql语句,已查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成

Info: 线程执行的sql语句,如果没有语句执行则为null。这个语句可以使客户端发来的执行语句也可以是内部执行的语句

由于Command的状态大部分都是sleep对我们分析问题没什么作用,所以我们可以通过如下语句来排除sleep状态的线程:

  -- 查询非 Sleep 状态的链接,按消耗时间倒序展示,自己加条件过滤select id, db, user, host, command, time, state, infofrom information_schema.processlistwhere command != 'Sleep'order by time desc 

这样就过滤出来哪些是正在干活的,然后按照消耗时间倒叙展示,排在最前面的,极大可能就是有问题的链接了,然后查看 info 一列,就能看到具体执行的什么 SQL 语句了,针对分析

三、kill 使用

通过前面的查询,我们查到了问题sql,通常会kill掉这个链接的线程,具体看官网文档:https://dev.mysql.com/doc/refman/5.7/en/kill.html

执行语句如下:

   -- 查询执行时间超过2分钟的线程,然后拼接成 kill 语句select concat('kill ', id, ';')from information_schema.processlistwhere command != 'Sleep'and time > 2*60order by time desc 

在下一步我就不用说了吧,把拼接 kill 的执行结果跑一遍就搞定了,这个有时候非常好用,谁用谁知道

四、常见问题

一些问题会导致连锁反应,而且不太好定位,有时候以为是慢查询,很可能是大多时间是在等在CPU、内存资源的释放,所以有时候同一个查询消耗的时间有时候差异很大

总结了一些常见问题:

  • CPU报警:很可能是 SQL 里面有较多的计算导致的
  • 连接数超高:很可能是有慢查询,然后导致很多的查询在排队,排查问题的时候可以看到”事发现场“类似的 SQL 语句一大片,那么有可能是没有索引或者索引不好使,可以用:explain 分析一下 SQL 语句

参考:

https://xu3352.github.io/mysql/2017/07/08/msyql-show-full-processlist

https://my.oschina.net/mkh/blog/298036

mysql show full processlist 分析问题相关推荐

  1. 关于MySQL的慢日志分析工具

    今天我们看看关于MySQL慢日志的阅读. 我们知道,如果我们的语句不够优化,那么首先MySQL的慢日志是进一步优化的离线证据,虽然里面有好 多"伪慢语句"! 先不说怎么优化,如果你 ...

  2. 线上阿里云mysql慢_MySQL · 案例分析 · RDS MySQL线上实例insert慢常见原因分析-阿里云开发者社区...

    概述 insert慢是经常被问到的问题,笔者尝试在本文中对这个问题做一个分类梳理,列举的线上例子会做简化,希望对读者有所启发. 注意:因为阿里云MySQL线上实例还是以RDS 5.6为主体,本文的分析 ...

  3. mysql监控和性能分析工具

    mysql监控和性能分析工具 Mysql作为广泛应用的数据库系统,平时运维工作中对她的监控必不可少,现在把我对Mysql数据库的监控体会写成下文,欢迎拍砖. 无论是DBA或是SA,监控的目标都很明确, ...

  4. Mysql性能瓶颈深度定位分析

    我们在性能测试过程中,经常会遇到Mysql出现性能瓶颈的情况,对于数据库来说,所谓的性能瓶颈无非是慢SQL.CPU高.IO高.内存高,其中前三个举实际例子来进行性能分析,最后内存高只是方法性说明(实际 ...

  5. rsyslog概要以及源码安装mysql,rsyslog输出到Mysql基于loganalyzer查看分析

    Rsyslog:syslog的加强版本 日志对于系统中程序和服务的运行起着很大的作用,我们经常需要去看日志记录来查看各种信息,有用户登录信息,有网页访问信息,有系统故障信息,等等.. 日志通常有日志级 ...

  6. MySQL慢查询日志分析(一)

    慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...

  7. MySQL 慢查询日志分析及可视化结果

    MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...

  8. 分布式MySQL数据库TDSQL架构分析

     分布式MySQL数据库TDSQL架构分析 发表于11小时前| 次阅读| 来源程序员电子刊| 0 条评论| 作者雷海林 MySQLTDSQL腾讯架构 width="22" he ...

  9. mysql如何建立索引workbench_如何对MySQL索引进行优化分析

    为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义.助你了解索引, ...

最新文章

  1. ionic2.0禁止横屏模式
  2. 以上帝模式管理Windows系统
  3. java命令--jmap命令使用
  4. 关闭Struts2中s:property的HTML自动转码
  5. 一文读懂spring boot 和微服务的关系
  6. SpringCloud Stream消息驱动
  7. 2019 年入门AI算法工程师,你需要掌握什么技能?
  8. (BFS+hash去重)八数码问题
  9. android最简单存储数据结构,什么是存储要在多个Android设备上共享的同步数据的最佳数据结构?...
  10. gravity和layout_gravity
  11. 深度学习知识点全面总结
  12. 目前选择四核处理器移动平台,是最佳时机吗?
  13. Springboot JpaRepository findOne() 方法报错
  14. hdu1166------树状数组(板子)
  15. 万年历c语言编程代码解释,自己写的c语言万年历代码
  16. 路由器中的DMZ功能是什么?功能及设置方法详解
  17. 蒙特卡洛(Monte Carlo)
  18. 一篇文章读懂 Ad Network、Ad Exchange、DSP、SSP、DMP的区别?
  19. 幸福三月丨盐城北大青鸟女神节快乐!
  20. 服装实体店运营需要的所有软件,合集在此!(建议收藏)实体店运营 实体店运营干货 实体店运营全流程所需系统推荐

热门文章

  1. 计算机课作文600,上信息技术课作文600字
  2. 中国的各地节日美食都又哪些
  3. 项目融资计划书PPT模板
  4. Python 之 小白爬虫
  5. 如何成为当下一个合格的算法工程师
  6. Clickhouse副本与分片
  7. 数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。 请定义一个方法,方法能够得到小数类型数字的绝对值并返回。 请定义方法并测试
  8. vue-router的两种模式及区别
  9. C#入门4——计算自由落体运动
  10. 《重说中国近代史》—张鸣—(5)古老命题新解(二)