加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

怎么在MySQL数据库中使用show processlist指令

发布时间:2022-02-15 19:08:09 所属栏目:MySql教程 来源:互联网
导读:怎么在MySQL数据库中使用show processlist指令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 1. show processlist是什么 show processlist:通过查看mysql的官网,可以发现,其主
      怎么在MySQL数据库中使用show processlist指令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
 
 1. show processlist是什么
 
       show processlist:通过查看mysql的官网,可以发现,其主要是查询数据库中哪些线程正在执行,针对比较慢的线程(time的数值比较大的线程)我们可以将其kill掉。此外,show full processlist 返回的结果是实时变化的。
 
  2. show processlist怎么用
 
  有三种方式可以执行show processlist,可以通过命令行、SQL语句、Navicat客户端等。
 
  1) 命令行:SHOW FULL PROCESSLISTG
 
  执行结果如下:
 
mysql> SHOW FULL PROCESSLISTG
 
*************************** 1. row ***************************
Id: 1
User: system user
Host:
db: NULL
Command: Connect
Time: 1030455
State: Waiting for master to send event
Info: NULL
 
*************************** 2. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 1004
State: Has read all relay log; waiting for the slave
    I/O thread to update it
Info: NULL
 
*************************** 3. row ***************************
Id: 3112
User: replikator
Host: artemis:2204
db: NULL
Command: Binlog Dump
Time: 2144
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
 
*************************** 4. row ***************************
Id: 3113
User: replikator
Host: iconnect2:45781
db: NULL
Command: Binlog Dump
Time: 2086
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
 
*************************** 5. row ***************************
Id: 3123
User: stefan
Host: localhost
db: apollon
Command: Query
Time: 0
State: NULL
Info: SHOW FULL PROCESSLIST
rows in set (0.00 sec)
  2) 可以通过sql语句查询数据库中相关信息的表
 
  select id, db, user, host, command, time, state, info from information_schema.processlist order by time desc
 
  3) 可以通过Navicat工具查看,如下图是使用Navicat查询到的截图。
 
  3. show processlist怎么解读
 
  下面对于使用该命令查询到的结果进行解读。
 
  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。这个语句可以使客户端发来的执行语句也可以是内部执行的语句
 
  4. show processlist结果怎么处理
 
  在上面的步骤中,我们可以查到每个线程的执行时间等信息,因此针对执行时间比较长的线程,我们可以直接将其kill掉,直接执行 kill Id号即可。
 
  如果要查时间超过5分钟的,可以拼接并执行以下sql
 
select concat('kill ', id, ';') from information_schema.processlist where command != 'Sleep' and time > 5*60 order by time desc
关于怎么在MySQL数据库中使用show processlist指令问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读