一、命令概述:

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. Flex 学习笔记 动态设置itemRenderer
  2. Identity 验证,Authorize 特性
  3. 题目1178:复数集合
  4. Oracle 用户管理
  5. 如何高效学习 Kubernetes 知识图谱?
  6. 计算机面试书籍与求职网站推荐
  7. 数据库备份checksum选项你会用么?
  8. 【Kafka】测试Kafka整合Flume
  9. poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)
  10. roboto字体android,Android字体设置及Roboto字体使用方法
  11. C#入门经典.第6版 源代码下载 百度云盘下载
  12. 如何剪裁证件照大小?2寸证件照片怎么制作?
  13. speedoffice(Excel)表格的外框线怎么设置?
  14. 经验:常见木马和未授权控制软件的关闭 3
  15. Android 字体引入
  16. Windows Mobile下的重力感应器(Gravitational Sensor)开发
  17. Java ----excel操作(poi)
  18. C语言实现组合式的计算
  19. Less -- 初见less(Less介绍 初次使用less 使用考拉编译less 盒子居中)
  20. 图像倾斜校正 Radon 变换原理及函数

热门文章

  1. unity中的渲染优化技术
  2. (38)Shell脚本【字符串运算:相等判断】
  3. python爬虫——爬取网页的中文
  4. 启动TomCat的流程
  5. 单枪匹马的背锅侠,终于不再是一个人的军团了
  6. 購物籃分析,最清楚概念-part1
  7. snmptrap 命令解析
  8. 什么是嵌入式视觉?ARM处理器打造嵌入式视觉硬件
  9. Java,看完我工资从12K变成了20K
  10. 浅谈机器人的定位技术 激光SLAM VS 视觉SLAM