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,您可以实时监控数据库负载、识别阻塞查询,并优化资源使用。

相关推荐
高级程序源6 小时前
django校园寻物通失物招领平台32261-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·django·flask·课程设计
KIDULT°6 小时前
MySQL系列 (1):数据库原理
运维·数据库·mysql·云计算
我不是程序员三三6 小时前
透明加密软件偶发解密异常排错实录:文件时能打开时乱码
数据库·域智盾
snhna6 小时前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
天行健,君子而铎7 小时前
数据分类分级的范式转换:从规则匹配到场景化高准确率一键部署
网络·数据库·安全
牛战士coding7 小时前
MySQL 读写分离完整链路:主从复制、多数据源与 @DS 路由
数据库·mysql
goehou8 小时前
MCP 查数实战:让 LLM 安全地查数据库(只读账号、SQL 校验、参数漂移)
数据库·ai·llm·教程·mcp·function calling
我不会插花弄玉8 小时前
7.函数【由浅入深-MySQL】
android·数据库·mysql
周小董9 小时前
[1369]Windows上安装PostgreSQL
数据库·windows·postgresql
一只积极向上的小咸鱼11 小时前
第一性原理思考:从拆解问题到用实验检验答案
数据库