首页 > 编程笔记 > MySQL笔记 阅读:10

MySQL SHOW PROCESSLIST命令的用法(附带实例)

MySQL 中 SHOW PROCESSLIST 命令的输出结果显示有哪些线程正在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,帮助识别出有问题的查询语句等。

如果是 root 账号,则能看到所有用户的当前连接;如果是其他普通账号,则只能看到自己占用的连接。SHOW PROCESSLIST 只列出前 100 条数据,如果想全部列出,可以使用 SHOW FULL PROCESSLIST 命令。

【实例】使用 SHOW PROCESSLIST 命令输出当前用户的连接信息,SQL 语句如下:
MySQL> SHOW PROCESSLIST;
+--+---------------+---------------+----+-------+------+----------------------+----------------+
|Id|User           | Host          | db |Command| Time | State                | Info           |
+--+---------------+---------------+----+-------+------+----------------------+----------------+
|4 |event_scheduler|localhost      |NULL|Daemon |15274 |Waiting on empty queue|NULL            |
|23|root           |localhost:58788|NULL|Query  | 0    | starting             |SHOW PROCESSLIST|
+--+---------------+---------------+----+-------+------+----------------------+----------------+
各个列说明如下:
使用另一个命令行登录 MySQL,此时将会有 2 个连接。在第二个登录的命令行下再次输入 SHOW PROCESSLIST,结果如下:
mysql> SHOW PROCESSLIST;
+----+------+--------------+--------+---------+--------+---------+----------------+
| Id | User | Host         | db     | Command | Time   | State   | Info           |
+----+------+--------------+--------+---------+--------+---------+----------------+
|  1 | root |localhost:3602|NULL    | Sleep   |   38   |         | NULL           |
|  2 | root |localhost:3272|NULL    | Query   |   0    |NULL     |show processlist|
+----+------+--------------+--------+---------+--------+---------+----------------+
可以看到,当前活动用户为已登录的连接 Id 为 2 的用户,正在执行的 Command(操作命令)是 Query(查询),使用的查询命令为 SHOW PROCESSLIST;而连接 Id 为 1 的用户目前没有对数据进行操作,即为 Sleep 操作,而且已经经过了 38 秒。

相关文章