我在stackoverflow上问了这个问题,并被指示在这里问这个问题。
我有几个运行 MySQL 查询的 PHP 脚本。有时它们会导致服务器卡住或被需要一段时间的 MySQL 进程阻塞,例如格式错误LEFT JOINs
等。
当我运行查询以查找有关已运行的所有当前 MySQL 查询的信息时,是否可以将查询 ID 解析为运行它的文件?
有一个查询一直在休眠 3973 没有关于此查询的信息,所以我试图找到尽可能多的信息?
我在stackoverflow上问了这个问题,并被指示在这里问这个问题。
我有几个运行 MySQL 查询的 PHP 脚本。有时它们会导致服务器卡住或被需要一段时间的 MySQL 进程阻塞,例如格式错误LEFT JOINs
等。
当我运行查询以查找有关已运行的所有当前 MySQL 查询的信息时,是否可以将查询 ID 解析为运行它的文件?
有一个查询一直在休眠 3973 没有关于此查询的信息,所以我试图找到尽可能多的信息?
有三 (3) 种方法可以查找有关查询及其进程 ID 的信息
方式#1:将常规日志激活为文本文件
如果在 my.cnf 中添加以下行并重启 mysql
您可以解析
/var/log/mysql_general.log
文本文件。每个查询的标头应该有查询运行的进程 ID(线程 ID)方式#2:将常规日志激活为 MyISAM 表
有一个名为 mysql.general_log 的表。默认为 CSV 文件。运行以下命令:
然后将以下内容添加到 my.cnf
将常规日志条目存储为表行后,您可以随意对 MyISAM 运行 SELECTS,查询如下:
方式#3:检查进程列表
如果您想在长时间运行的行为中捕获查询,请执行以下操作(如果您有 MySQL 5.1):
这将向您显示当前正在运行的每个查询。
info
您可以为要跟踪的任何查询解析该列