MySQL 'show processlist' 语句

我们还可以从 INFORMATION_SCHEMA.PROCESSLIST 表或者 mysqladmin processlist 命令获取线程信息。
如果我们没有 PROCESS 权限,则只能查看我们自己的线程。
也就是说,我们只能查看与我们正在使用的 MySQL 帐户关联的线程。
如果不使用 FULL 关键字,则信息字段中仅显示每条语句的前 100 个字符。

我在一个测试 MySQL 数据库上,目前没有进程在它上面运行。
在繁忙的数据库中,我们会看到比下图更长的列表。

SHOW PROCESSLIST 产生以下列:

  • Id : 连接标识符
  • User : 发表声明的 MySQL 用户
  • Host : 发出语句的客户端的主机名
  • db : 选择默认数据库;否则为 NULL
  • Command:线程正在执行的命令类型
  • Time :线程处于当前状态的时间(以秒为单位)
  • State:指示线程正在做什么的动作、事件或者状态
  • Info : 线程正在执行的语句;否则为 NULL

PROCESS 权限允许我们查看所有线程。

如果我们收到“连接过多 too many connections ”错误消息并想确定正在执行哪些语句,则使用 SHOW FULL PROCESSLIST 语句非常有用。

MySQL 保留一个另外的连接供具有 SUPER 权限的帐户使用。
这确保即使已达到连接限制,管理员也可以始终连接并检查系统,假设应用程序用户没有 SUPER 权限。

使用 KILL 语句终止进程。
如果进程在我们可以访问的终端中运行,我们可以使用“CTRL + C”键盘组合来终止它,尽管这不如使用 KILL 干净。

日期:2020-09-17 00:11:14 来源:oir作者:oir