show processlist 显示系统中正在运行的所有进程

本文将介绍 show processlist 显示系统中正在运行的所有进程。

MySQL 中可以使用 show processlist 命令显示有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态帮助识别出有问题的查询语句等。如果是 root 帐号,能看到所有用户的当前连接。如果是其他普通帐号,则只能看到自己占用的连接。show processlist 只能列出当前100条。如果想全部列出,可以使用 show full processlist 命令。语法格式:

show [full] processlist

实例1:使用 show processlist 显示当前 mysql 上面正在运行的线程,只能显示前 100 条数据。如下:

mysql> show processlist;
+-----+-----------------+-----------------+--------+---------+-------+------------------------+------------------+
| Id  | User            | Host            | db     | Command | Time  | State                  | Info             |
+-----+-----------------+-----------------+--------+---------+-------+------------------------+------------------+
|  85 | root            | localhost:56801 | test   | Query   |     0 | starting               | show processlist |
|  86 | root            | localhost:57243 | test   | Sleep   | 11095 |                        | NULL             |
|  87 | root            | localhost:57246 | test   | Sleep   | 15849 |                        | NULL             |
|  88 | root            | localhost:57251 | test   | Sleep   | 15839 |                        | NULL             |
|  91 | root            | localhost:57331 | NULL   | Sleep   | 15698 |                        | NULL             |
| 111 | root            | localhost:58020 | test   | Sleep   | 13144 |                        | NULL             |
| 122 | event_scheduler | localhost       | NULL   | Daemon  | 11095 | Waiting on empty queue | NULL             |
+-----+-----------------+-----------------+--------+---------+-------+------------------------+------------------+
7 rows in set (0.00 sec)

实例2:使用 show full processlist 显示当前 mysql 上面正在运行的所有线程。

mysql> show full processlist;
+-----+-----------------+-----------------+--------+---------+-------+------------------------+-----------------------+
| Id  | User            | Host            | db     | Command | Time  | State                  | Info                  |
+-----+-----------------+-----------------+--------+---------+-------+------------------------+-----------------------+
|  85 | root            | localhost:56801 | test   | Query   |     0 | starting               | show full processlist |
|  86 | root            | localhost:57243 | test   | Sleep   | 11132 |                        | NULL                  |
|  87 | root            | localhost:57246 | test   | Sleep   | 15886 |                        | NULL                  |
|  88 | root            | localhost:57251 | test   | Sleep   | 15876 |                        | NULL                  |
|  91 | root            | localhost:57331 | NULL   | Sleep   | 15735 |                        | NULL                  |
| 111 | root            | localhost:58020 | test   | Sleep   | 13181 |                        | NULL                  |
| 122 | event_scheduler | localhost       | NULL   | Daemon  | 11132 | Waiting on empty queue | NULL                  |
+-----+-----------------+-----------------+--------+---------+-------+------------------------+-----------------------+
7 rows in set (0.00 sec)

字段说明:

  • 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 语句,是判断问题语句的一个重要依据

不是每一次努力都有收获,但是,每一次收获都必须努力。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号