MySQL调优用户监控之show processlist
简介
show processlist显示这台MySQL正在连接的用户:
mysql> show processlist;
+----+------+-----------+-------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+-------+---------+------+----------+------------------+
| 25 | root | localhost | mysql | Query | 0 | starting | show processlist |
| 26 | root | localhost | NULL | Sleep | 29 | | NULL |
+----+------+-----------+-------+---------+------+----------+------------------+
2 rows in set (0.00 sec)
root用户能看到所有正在运行的线程,其他用户则需要被赋予了PROCESS 权限,否则只能看到自己正在运行的线程。show processlist 显示的信息来自MySQL系统库 information_schema 中的 processlist 表。可以使用下面的查询语句可以获得相同的结果(为了便于阅读避免错行直接截图):

属性解释
ID
线程的唯一标识,是information_schema.processlist表的主键。
USER
就是指启动这个线程的用户。
Host
记录发送请求的客户端的 IP 和 端口号。通过这些信息在排查问题的时候,我们可以定位到是哪个客户端的哪个进程发送的请求。
DB
当前执行的命令是在使用哪一个数据库上。如果没有指定数据库,则该值为 NULL 。
Command
是指此刻该线程正在执行的命令,下面单独解释。
Time
表示该线程处于当前状态的时间。
State
线程的状态,和 Command 对应,下面单独解释。
Info
记录的是线程执行的语句。默认只显示前100个字符,也就是看到的语句可能是截断的,要看全部信息使用 show full processlist。
Command详解
这儿只列出常用且重要的部分,详细请参考MySQL官方链接:8.14.2 Thread Command Values
sleep:线程正在等待客户端发送新的请求
query:线程正在执行查询或正在将结果发送给客户端
locked:在mysql的服务层,该线程正在等待表锁
analyzing and statistics:线程正在收集存储引擎的统计信息,并生成查询的执行计划
Copying to tmp table:线程正在执行查询,并且将其结果集都复制到一个临时表中
sorting result:线程正在对结果集进行排序
sending data:线程可能在多个状态之间传送数据,或者在生成结果集或者向客户端返回数据
State详解
这儿只列出常用且重要的部分,详细请参考MySQL官方链接:8.14.3 General Thread States
User lock
该线程将要请求或正在等待通过GET_LOCK()调用请求的咨询锁定 。对于 SHOW PROFILE,此状态表示线程正在请求锁定(不等待它)。
User sleep
线程已调用 SLEEP()。
init
出现这种情况的初始化之前 ALTER TABLE, DELETE, INSERT, SELECT,或 UPDATE语句。服务器在此状态下采取的操作包括刷新二进制日志,InnoDB日志和一些查询缓存清除操作。
end
这发生在结束,但的清理之前 ALTER TABLE, CREATE VIEW, DELETE, INSERT, SELECT,或 UPDATE语句。
对于end状态,可能发生以下操作:
- 更改表中的数据后删除查询缓存条目
- 将事件写入二进制日志
- 释放内存缓冲区,包括blob
After create
当线程在创建表的函数的末尾创建表(包括内部临时表)时,会发生这种情况。即使由于某些错误而无法创建表,也会使用此状态。
altering table
服务器正在执行就地服务 ALTER TABLE。
Checking table
线程正在执行表检查操作。
closing tables
线程正在将已更改的表数据刷新到磁盘并关闭已使用的表。这应该是一个快速的操作。如果没有,请确认您没有完整的磁盘,并且磁盘使用率不是很高。
optimizing服务器正在对查询执行初始优化。
preparing此状态在查询优化期间发生。
MySQL调优用户监控之show processlist的更多相关文章
- MySQL调优性能监控之performance schema
一.performance_schema的介绍 performance:性能 schema:图(表)示,以大纲或模型的形式表示计划或理论. MySQL的performance schema 用于监控M ...
- MySQL调优性能监控之show profile
用show profile查询工具指定具体的type show profile在mysql5.7之后过时 show profile命令用于跟踪执行过的sql语句的资源消耗信息,可以帮助查看sql语句的 ...
- MySQL 调优/优化的 100 个建议
MySQL 调优/优化的 100 个建议 MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...
- MySQL 调优基础(一) CPU与进程
一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层 ...
- mysql调优 基础
MySQL调优可以从几个方面来做: 1. 架构层:做从库,实现读写分离: 2.系统层次:增加内存:给磁盘做raid0或者raid5以增加磁盘的读写速度:可以重新挂载磁盘,并加上noatime参数,这样 ...
- mysql调优最大连接数
一.mysql调优 1.1 报错: Mysql: error 1040: Too many connections 1.2 原因: 1.访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器 ...
- 数据库MySQL调优实战经验总结<转>
数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...
- MySQL调优 优化需要考虑哪些方面
MySQL调优 优化需要考虑哪些方面 优化目标与方向定位 总体目标:使得响应时间更快,吞吐量更大. (throughout --- 吞吐量:单位时间内处理事务的数量) 如何找到需要优化的地方 使用 ...
- MySQL调优系列基础篇
前言 有一段时间没有写博客了,整天都在忙,上班,录制课程,恰巧最近一段时间比较清闲,打算弄弄MYSQL数据库. 关于MySQL数据库,这里就不做过多的介绍,开源.免费等特性深受各个互联网行业喜爱,尤其 ...
随机推荐
- C#反编译工具ILSpy 反汇编
ILSpy反编译工具之C#反汇编 1.下载ILspy工具 https://github.com/icsharpcode/ILSpy#ilspy------- 注意: ILspy需要在电脑上安装.N ...
- Django中关于“CSRF verification failed. Request aborted”的问题
遇到该问题的情境 在Django中采用Ajax提交表单,涉及到跨域问题. 解决措施 在html页面中的表单内添加如下代码: {% csrf_token %} 在视图函数所在的py文件中添加如下代码: ...
- python序列(八)列表推导式实列
1.列表推导式列表推导能非常简洁的构成一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形. 格式:[表达式 for 变量 in 列表]或[表达式 for 变量 in 列表 if 条件] 过滤 ...
- [Python] iupdatable包:Timer 类使用介绍
iudatable包是我对常用函数进行的封装后发布的一个python包,教程汇总目录: [Python] iupdatable包使用说明 安装 iupdatable 包 pip install iup ...
- Qt学习笔记-制作一个计算器-对话框Message Box
在做计算器的前提先做一个加法器. 设计界面. 在点击计算的时候,获取前两个输入框中的数据相加后显示在第三个输入框. toInt是将字符串转换为数字.number静态函数是将数字转化为字符串. 加法器已 ...
- 决胜面试之---SQL经典面试题
在SQL面试部分,一般会考核多表连接查询能力,精选了一些SQL面试题记录下: 四张表(学生表,教师表,课程表,成绩表) 以下是表的创建和添加SQL语句 学生 ...
- Linux 路由 静态路由
Linux 路由 静态路由 目录 Linux 路由 静态路由 一.临时生效,使用命令route A.添加到主机的路由 B.添加到网络的路由 C.添加默认路由 D.删除路由 E.查看所有路由信息 二.临 ...
- java并发包工具(java.util.Concurrent)
一.CyclicBarrier 作用:所有线程准备好才进行,只要一条线程没准备好,都不进行 用法:所有线程准备好以后调用CyclicBarrier的await方法,然后主线程执行CyclicBarri ...
- ES6模板字符串及字符串的扩展方法
一.ES6模板字符串 传统定义字符串的方式是: const str='hello es2015,this is a string' ES6新增了一种定义字符串的方式用反引号进行标识 const str ...
- Solon rpc 之 SocketD 协议
1. 简介 SocketD 是一种二进制的点对点通信协议,是一种新的网络通信第七层协议.旨在用于分布式应用程序中.从这个意义上讲,SocketD可以是RSocket等其他类似协议的替代方案.它的消息协 ...