【mysql】PROCESSLIST 查看运行中的线程

发现 mysql 语句查询响应特别慢,想看一下mysql现时正在做什么事情?

通过以下语句,可以看mysql有哪些线程正在运行,也可以帮助定位问题。比如有一些运行特别久的语句。

用这个语句看一下:

show processlist
show full processlist

或者用这个语句:

select * from information_schema.`PROCESSLIST` where info is not null;




以下为参考内容:
原文: https://www.cnblogs.com/f-ck-need-u/p/7742153.html

在主从复制环境中,show processlist或show full processlist对于判断状态很有帮助,例如下面的state列:

image

image

①.id列,用户登录mysql时,系统分配的"connection_id",可以使用函数connection_id()查看
②.user列,显示当前用户。如果不是root,这个命令就只显示用户权限范围的sql语句
③.host列,显示这个语句是从哪个ip的哪个端口上发的,可以用来跟踪出现问题语句的用户
④.db列,显示这个进程目前连接的是哪个数据库
⑤.command列,显示当前连接的执行的命令,一般取值为休眠(sleep),查询(query),连接(connect)等
⑥.time列,显示这个状态持续的时间,单位是秒
⑦.state列,显示使用当前连接的sql语句的状态,很重要的列。state描述的是语句执行中的某一个状态。一个sql语句,以查询为例,可能需要经过copying to tmp table、sorting result、sending data等状态才可以完成
⑧.info列,显示这个sql语句,是判断问题语句的一个重要依据

posted @ 2024-06-12 10:23  aaacarrot  阅读(10)  评论(0编辑  收藏  举报