Mysql数据库语句SHOW PROCESSLIST的作用

追梦小窝 2019-08-29 10:26:14 477浏览 0条评论
首页/ 正文
分享到: / / / /

最近经常会遇到公司的服务器CPU总是会出现高危情况,检查了一下主要原因还是由于mysql占用资源太多

项目用的是比较老的tp3.2.3框架,为了快速定位出问题,直接进到服务器

登录mysql

mysql -u root -p 密码

当服务器mysql占用过多资源时,使用SHOW PROCESSLIST;命令查看用户

正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,

其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除

非单独个这个用户赋予了PROCESS 权限。

还可以使用select * from information_schema.processlist查询


  • Id: 就是这个线程的唯一标识,当我们发现这个线程有问题的时候,可以通过 kill 命令,加上这个Id值将这个线程杀掉。前面我们说了show processlist 显示的信息时来自information_schema.processlist 表,所以这个Id就是这个表的主键。
  • User: 就是指启动这个线程的用户。
  • Host: 记录了发送请求的客户端的 IP 和 端口号。通过这些信息在排查问题的时候,我们可以定位到是哪个客户端的哪个进程发送的请求。
  • DB: 当前执行的命令是在哪一个数据库上。如果没有指定数据库,则该值为 NULL 。
  • Command: 是指此刻该线程正在执行的命令。这个很复杂,下面单独解释
  • Time: 表示该线程处于当前状态的时间。
  • State: 线程的状态,和 Command 对应,下面单独解释。
  • Info: 一般记录的是线程执行的语句。默认只显示前100个字符,也就是你看到的语句可能是截断了的,要看全部信息,需要使用 show full processlist。


最后修改:2020-06-20 12:55:27 © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏

发表评论

说点什么吧~

评论列表

扫一扫支付