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

相关推荐
RestCloud6 分钟前
MongoDB到关系型数据库:JSON字段如何高效转换?
数据库·mysql·mongodb
洲覆21 分钟前
Redis 64字节分界线与跳表实现原理
数据结构·数据库·redis·缓存
失因35 分钟前
Nginx 特性、配置与实战部署
运维·数据库·nginx
chirrupy_hamal42 分钟前
PostgreSQL 流复制参数 - synchronous_commit
数据库·postgresql
lang2015092844 分钟前
MySQL InnoDB表压缩:性能优化全解析
数据库·mysql
满昕欢喜1 小时前
SQL Server从入门到项目实践(超值版)读书笔记 27
数据库·sql·sqlserver
间彧1 小时前
ProxySQL详解与实战应用
数据库
间彧1 小时前
在MySQL 8.0+版本中,如果MyISAM被弃用,有哪些替代方案可以实现类似读写分离的性能优化?
数据库
code123131 小时前
redis升级方法
数据库·redis·缓存
间彧1 小时前
在读写分离架构中,如何合理搭配使用InnoDB和MyISAM引擎?
数据库