当前位置: 首页 > news >正文

MySQL的show full processlist命令

如果数据库慢了,想要看看mysql正在干什么,可以执行这个语句,可以列出mysql当前连接在执行的sql语句。  

Id    User Host db    Command       Time       State       Info

2599       oa    SVCTAG-91FFF2X:3726      penguin   Sleep       7321              <null>

2956       rw_penguin    SVCTAG-6HKDF2X:5481     penguin   Sleep       2293              <null>

2957       rw_penguin    CYSY-DL580-2:3925     penguin   Sleep       2162              <null>

2963       rw_penguin    CYSY-DL580-2:4122     penguin   Sleep       2162              <null>

2965       rw_penguin    CYSY-DL580-2:4270     penguin   Sleep       2162              <null>

  ………………………………………………………………

  以下内容摘自手册

  SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。如果您不使用FULL关键词,则只显示每个查询的前100个字符。

  本语句报告TCP/IP连接的主机名称(采用host_name:client_port格式),以方便地判定哪个客户端正在做什么。

  如果您得到“too many connections”错误信息,并且想要了解正在发生的情况,本语句是非常有用的。MySQL保留一个额外的连接,让拥有SUPER权限的账户使用,以确保管理员能够随时连接和检查系统(假设您没有把此权限给予所有的用户)。

  在来自SHOW PROCESSLIST的输出中常见的一些状态:

  · Checking table

  线程正在执行(自动)表格检查。

  · Closing tables

  意味着线程正在刷新更改后的表数据,并正在关闭使用过的表。这应该是一个快速的操作。如果不快,则您应该验证您的磁盘没有充满,并且磁盘没有被超负荷使用。

  · Connect Out

  连接到主服务器上的从属服务器。

  · Copying to tmp table on disk

  临时结果集合大于tmp_table_size。线程把临时表从存储器内部格式改变为磁盘模式,以节约存储器。

  · Creating tmp table

  线程正在创建一个临时表,以保持部分结果。

  · deleting from main table

  服务器正在执行多表删除的第一部分,只从第一个表中删除。

  · deleting from reference tables

  服务器正在执行多表删除的第二部分,从其它表中删除匹配的行。

  · Flushing tables

  线程正在执行FLUSH TABLES,并正在等待所有线程,以关闭表。

  · FULLTEXT initialization

  服务器正在准备执行一个自然语言全文本搜索。

  · Killed

  有人已经向线程发送了一个KILL命令。在下一次检查终止标记时,应放弃。该标记在MySQL的每个大循环中都检查,但是在有些情况下,线程终止只需要较短的时间。如果该线程被其它线程锁定,则只要其它线程接触锁定,终止操作就会生效。

  · Locked

  该查询被其它查询锁定。

  · Sending data

  线程正在为SELECT语句处理行,同时正在向客户端发送数据。

  · Sorting for group

  线程正在进行分类,以满足GROUP BY要求。

  · Sorting for order

  线程正在进行分类,以满足ORDER BY要求。

  · Opening tables

  线程正在试图打开一个表。这应该是非常快的过程,除非打开操作受到阻止。例如,一个ALTER TABLE或一个LOCK TABLE语句可以阻止打开一个表,直到语句完成为止。

  · Removing duplicates

  查询正在使用SELECT DISTINCT。使用时,在早期阶段,MySQL不能优化不同的操作。因此,MySQL要求一个额外的阶段,以便在把结果发送给客户端之前取消所有的复制行。

  · Reopen table

  线程得到一个表锁定,但是在得到锁定后被通知带下方的表结构已更改了。它已经释放了锁定,关闭了表,并试图重新打开它。

  · Repair by sorting

  修复代码正在使用一个分类来创建索引。

  · Repair with keycache

  修复代码正在通过关键缓存一个接一个地使用创建关键字。这比通过分类修复要慢很多。

  · Searching rows for update

  线程正在进行第一阶段,以在更新之前,查找所有匹配的行。如果UPDATE正在更改用于查找相关行的索引,则必须这么做。

  · Sleeping

  线程正在等待客户端,以向它发送一个新语句。

  · System lock

  线程正在等待得到一个用于表的外部系统锁定。如果您没有正在使用多个正在访问同一个表的mysqld服务器,则您可以使用--skip-external-locking选项禁用系统锁定。

  · Upgrading lock

  INSERT DELAYED管理程序正在试图得到一个表锁定,以插入行。

  · Updating

  线程正在搜索行,并正在更新这些行。

  · User Lock

  线程正在等待GET_LOCK()。

  · Waiting for tables

  线程得到一个通知,表的底层结构已经改变,需要重新打开表以得到新的结构。但是,为了能重新打开表,必须等待,直到所有其它的线程已经关闭了正在被质询的表。

  如果其它线程已经对正在被质询的表使用了FLUSH TABLES或以下语句之一:FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE或OPTIMIZE TABLE;则会出现通知。

  · waiting for handler insert

  INSERT DELAYED管理程序已经处理了所有处于等待状态的插入,并正在等待新插入。

  多数状态对应于非常快的操作。如果一个线程在这些状态下停留了数秒,则可能是有问题,需要进行调查。

  有一些其它的状态,在前面的清单中没有提及,但是其中有很多状态对于查找服务器中的程序错误是有用的。

  从这里可以看到是不是有表锁死了,是不是有些语句执行了很久,甚至可以通过kill id 语句灭了捣乱的连接。

 

 

 

 

相关文章:

  • asp没有权限解决方案
  • Asp获取真实IP地址
  • 判断是否是IP地址格式
  • Windows Server 2008 IE 无法调整安全级别 的解决方案
  • ADO错误: 无法为更新定位行。一些值可能已在最后一次读取后已更改解决办法
  • MySQL DATEDIFF TIMEDIFF
  • C# 发送电子邮件(含附件)用到的类 system.web.mail
  • 为应用程序池defaultAppPool提供服务的进程在于world wide web publishing服务通信时遇到致命错误 进程id为1356. 数据字段包含错误号
  • realtek PCI-E Gigabit Ethernet Boot Agent
  • 修改ubuntu开机背景颜色
  • 事件ID(54)的描述(在资源(HTTP)中)无法找到 解决办法
  • WIndows 7 安装.net framework 4.0 失败,错误HRESULT 0xc8000222解决办法
  • APK文件反编译、签名整合工具包
  • .apk文件,IIS不支持下载解决
  • CSS禁止选择文本功能(兼容IE,火狐等浏览器)
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JavaScript中的对象个人分享
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Octave 入门
  • Otto开发初探——微服务依赖管理新利器
  • Redis字符串类型内部编码剖析
  • Spring-boot 启动时碰到的错误
  • 服务器从安装到部署全过程(二)
  • 线性表及其算法(java实现)
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • #android不同版本废弃api,新api。
  • #DBA杂记1
  • #QT(串口助手-界面)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (二)springcloud实战之config配置中心
  • (分布式缓存)Redis持久化
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转载)(官方)UE4--图像编程----着色器开发
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net程序集学习心得
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @Transactional 竟也能解决分布式事务?
  • @WebService和@WebMethod注解的用法
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [20150629]简单的加密连接.txt
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [docker] Docker的私有仓库部署——Harbor
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb
  • [EWS]查找 文件夹
  • [HUBUCTF 2022 新生赛]
  • [java面试]宇信易诚 广州分公司 java笔试题目回忆录
  • [jobdu]不用加减乘除做加法
  • [leetcode] Balanced Binary Tree
  • [Linux]进程创建➕进程终止
  • [Spring] Spring注解简化开发
  • [SpringBoot]接口的多实现:选择性注入SpringBoot接口的实现类
  • [THUPC 2024 初赛] 二进制 (树状数组单点删除+单点查询)(双堆模拟set)
  • [Unity3D ARPG网络游戏编程实践] 网络连接 :unity NetWork与socket的对比(一)