SHOW FULL PROCESSLIST; 是一个 SQL 命令,用于显示 MySQL 服务器上当前运行的所有线程(进程)。这个命令对于监控和诊断数据库性能问题非常有用,因为它可以提供关于哪些查询正在运行、它们已经运行了多长时间、它们消耗了多少资源等信息。

执行 SHOW FULL PROCESSLIST; 命令后,你会得到一个结果集,其中包含以下字段:

  • Id:线程的唯一标识符。
  • User:执行线程的 MySQL 用户名。
  • Host:用户连接的主机名和端口号。
  • db:当前线程所使用的数据库。
  • Command:线程正在执行的命令类型。
  • Time:当前命令已经执行的秒数。
  • State:线程的状态,例如 "Sleeping"、"Query" 等。
  • Info:正在执行的 SQL 语句的前 100 个字符(对于 SELECT、INSERT 等命令)。

例如,输出可能如下所示:

+----+------+-----------+----------+---------+------+---------+---------+------+-------+
| Id | User | Host      | db       | Command | Time | State   | Info   |
+----+------+-----------+----------+---------+------+---------+---------+------+-------+
|  1 | root | localhost | testdb   | Query   |   24 | starting | show full processlist |
|  2 | user | localhost |          | Sleep   | 1542 |          | NULL    |
|  3 | user | 127.0.0.1 | testdb   | Query   |    2 | NULL     | select * from users |
+----+------+-----------+----------+---------+------+---------+---------+------+-------+

在这个例子中,你可以看到有三个线程正在运行: - 线程 1 是一个查询,显示了当前的进程列表。 - 线程 2 处于睡眠状态,可能是一个长时间运行的后台进程。 - 线程 3 正在执行一个查询,检索 users 表中的所有记录。

如果你需要管理或终止特定的线程,可以使用 KILL [thread_id]; 命令,其中 [thread_id] 是你想要终止的线程的 ID。例如,如果你想要终止线程 3,你可以执行:

KILL 3;

请注意,只有具有适当权限的用户才能查看进程列表或终止线程。