📜  mysql 显示当前查询 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.417000             🧑  作者: Mango

MySQL 显示当前查询 - SQL

MySQL是一种流行的关系型数据库管理系统。在进行开发和调试时,了解正在运行的MySQL查询非常重要。MySQL提供了许多工具和命令来查看当前正在执行的查询。

使用SHOW PROCESSLIST命令查看当前查询

可以使用SHOW PROCESSLIST命令来查看MySQL服务器上正在运行的所有查询。以下是该命令的一些示例输出:

mysql> SHOW PROCESSLIST;
+----+------+-----------------+--------+---------+------+-------+------------------+
| Id | User | Host            | db     | Command | Time | State | Info             |
+----+------+-----------------+--------+---------+------+-------+------------------+
| 1  | root | localhost:45090 | mydb   | Sleep   | 0    |       | NULL             |
| 2  | root | localhost       | mydb   | Query   | 1    |       | SELECT * from mytable |
+----+------+-----------------+--------+---------+------+-------+------------------+
  • 第一列是查询的ID。
  • 第二列是用于执行查询的用户。
  • 第三列是执行查询的主机和端口。
  • 第四列是查询正在使用的数据库。
  • 第五列是执行的命令类型。
  • 第六列是查询已经运行的秒数。
  • 第七列是查询的状态。
  • 第八列是查询的文本。

从上面的输出中可以看到,当前有两个查询正在运行。一个是SLEEP命令,表示某个连接正在等待新的请求。另一个是一个SELECT语句,正在从mytable表中检索所有行。

使用SHOW FULL PROCESSLIST命令查看更多信息

如果需要查看更多有关正在运行的查询的信息,可以使用SHOW FULL PROCESSLIST命令。以下是该命令的一些示例输出:

mysql> SHOW FULL PROCESSLIST;
+----+------+-----------------+--------+---------+------+-------+------------------+
| Id | User | Host            | db     | Command | Time | State | Info             |
+----+------+-----------------+--------+---------+------+-------+------------------+
| 1  | root | localhost:45090 | mydb   | Sleep   | 0    |       | NULL             |
| 2  | root | localhost       | mydb   | Query   | 1    |       | SELECT * from mytable |
+----+------+-----------------+--------+---------+------+-------+------------------+
  • 第一列是查询的ID。
  • 第二列是用于执行查询的用户。
  • 第三列是执行查询的主机和端口。
  • 第四列是查询正在使用的数据库。
  • 第五列是执行的命令类型。
  • 第六列是查询已经运行的秒数。
  • 第七列是查询的状态。
  • 第八列是查询的文本。
  • 第九列是查询的起始时间。
  • 第十列是查询产生的所有行数。
总结

MySQL提供了SHOW PROCESSLIST和SHOW FULL PROCESSLIST命令来查看正在运行的查询。这对于开发人员来说非常有用,因为它们可以检查哪些查询正在运行,以及运行时间如何。