Mysql--基础知识点--91.2--processlist

在 MySQL 中,SHOW PROCESSLIST 是一个常用命令,用于查看当前数据库服务器上所有正在运行的线程(进程)信息。以下是关键点说明:


1. 命令用法

sql 复制代码
SHOW FULL PROCESSLIST;
  • 输出字段

    列名 含义
    Id 线程唯一标识符(可用于 KILL 命令终止进程)
    User 执行查询的数据库用户
    Host 客户端主机名和端口
    db 当前使用的数据库
    Command 线程正在执行的命令类型(如 Query, Sleep, Connect 等)
    Time 命令已执行的秒数
    State 线程的当前状态(如 Sending data, Sorting result, Locked 等)
    Info 线程正在执行的具体 SQL 语句(FULL 关键字会显示完整语句)

2. 权限要求

  • 普通用户:默认只能看到自己的线程。
  • 管理员权限 :需 PROCESS 权限(或 SUPER 权限)才能查看所有用户的线程。

3. 常见用例

查看所有活动线程
sql 复制代码
SHOW FULL PROCESSLIST;

输出示例:

复制代码
+----+------+-----------------+------+---------+------+---------------------------------+------------------+
| Id | User | Host            | db   | Command | Time | State                           | Info             |
+----+------+-----------------+------+---------+------+---------------------------------+------------------+
| 5  | root | localhost:12345 | test | Query   | 0    | starting                        | SHOW PROCESSLIST |
| 6  | user | 192.168.1.10:5678| test | Sleep   | 120  |                                 | NULL             |
+----+------+-----------------+------+---------+------+---------------------------------+------------------+
终止指定线程
sql 复制代码
KILL 5;  -- 终止 Id=5 的线程
过滤长时间运行的查询
sql 复制代码
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 
WHERE Command = 'Query' AND Time > 60;

4. 替代方案:INFORMATION_SCHEMA.PROCESSLIST

  • 优势:可通过 SQL 查询过滤、排序或聚合数据。

  • 示例

    sql 复制代码
    -- 查找执行时间超过 10 秒的查询
    SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 
    WHERE TIME > 10 AND COMMAND = 'Query';

5. 典型状态解释

  • Sleep:线程处于空闲状态(等待新命令)。
  • Query:正在执行查询。
  • Locked:查询被锁阻塞(如等待行锁或表锁)。
  • Sending data:向客户端返回数据。
  • Sorting result:对结果集进行排序。

6. 结合性能分析

  • 若发现长时间运行的查询,可结合 EXPLAIN 分析执行计划,或通过 SHOW PROFILES(需提前启用 profiling)进一步诊断性能瓶颈。

通过 SHOW PROCESSLIST,您可以实时监控数据库负载、识别阻塞查询,并优化资源使用。

相关推荐
NineData32 分钟前
NineData 亮相香港国际创科展 InnoEX 2026,以 AI 加速布局全球市场
运维·数据库·人工智能·ninedata·新闻资讯·玖章算术
m0_3776182333 分钟前
Redis怎样应对大规模集群的重启风暴_分批次重启节点并等待集群状态恢复绿灯后再继续操作
jvm·数据库·python
imuliuliang1 小时前
存储过程(SQL)
android·数据库·sql
考虑考虑1 小时前
SQL语句中的order by可能造成时间重复
数据库·后端·mysql
2401_835956811 小时前
Golang怎么写基准测试benchmark_Golang基准测试教程【完整】
jvm·数据库·python
阿杰学AI2 小时前
AI核心知识129—大语言模型之 向量数据库(简洁且通俗易懂版)
数据库·人工智能·ai·语言模型·自然语言处理·向量数据库·vector database
SPC的存折2 小时前
D在 Alpine 容器中手动搭建 Discuz 全攻略(包含镜像一键部署脚本,可直接用)
linux·数据库·mysql·缓存
李兆龙的博客2 小时前
从一到无穷大 #67 大查询根因分析 - 从 PinSQL 到 RCRank
数据库·时序数据库
AgCl232 小时前
MYSQL-6-函数与约束-3/17
android·数据库·mysql
junqiduhang2 小时前
Win11 MySQL 8.0 安装八步走
数据库·mysql