information_schema.processlist 表详解

news/2025/2/27 5:58:17

information_schema.processlist 表(或 SHOW PROCESSLIST; 命令)用于查看 MySQL 当前所有的连接进程,帮助管理员监控数据库活动并排查性能问题。以下是该表的字段及其具体含义:


processlist__5">🔹 information_schema.processlist 字段详解

字段名数据类型含义示例
IDBIGINT连接的唯一 ID(线程 ID)12345
USERVARCHAR连接的 MySQL 用户root
HOSTVARCHAR连接的客户端主机和端口192.168.1.100:53421
DBVARCHAR连接使用的数据库(为空表示未选择数据库)test_db
COMMANDVARCHAR当前连接的执行状态Query / Sleep / Binlog Dump
TIMEINT该状态已持续的时间(秒)120
STATEVARCHAR当前执行 SQL 的具体状态Sending data
INFOLONGTEXT连接执行的 SQL 语句(可能为 NULLSELECT * FROM users;

🔹 关键字段解析

1️⃣ ID(连接 ID)
  • 连接的唯一标识,可以用于终止特定连接:
    KILL 12345;
    
2️⃣ USER(连接的 MySQL 用户)
  • 连接数据库的用户名。
  • root 表示管理员用户,其他可能是业务用户。
  • 可以用来筛选特定用户的连接
    SELECT * FROM information_schema.processlist WHERE USER = 'app_user';
    
3️⃣ HOST(客户端主机地址和端口)
  • 显示连接 MySQL 服务器的客户端 IP 和端口号,例如:
    192.168.1.100:53421
    
  • 可以用来检查哪些 IP 连接较多
    SELECT HOST, COUNT(*) AS conn_count 
    FROM information_schema.processlist 
    GROUP BY HOST 
    ORDER BY conn_count DESC;
    
4️⃣ DB(使用的数据库)
  • 连接当前选中的数据库,NULL 表示未选择数据库。
5️⃣ COMMAND(连接执行的操作)
  • 代表当前连接的执行状态,常见取值:

    COMMAND说明
    Sleep连接空闲(等待新查询)
    Query正在执行 SQL 语句
    Connect正在建立连接
    Binlog Dump复制(主从同步)
    DaemonMySQL 后台线程
  • 找出所有空闲连接(可以适当关闭):

    SELECT * FROM information_schema.processlist WHERE COMMAND = 'Sleep';
    
6️⃣ TIME(状态持续时间)
  • 该状态已持续的时间(秒)。
  • 如果 COMMAND='Sleep'TIME 很长,可能说明有长时间空闲的连接未释放
  • 找出空闲时间超过 1 小时的连接
    SELECT * FROM information_schema.processlist WHERE COMMAND = 'Sleep' AND TIME > 3600;
    
7️⃣ STATE(SQL 具体状态)
  • 代表 SQL 语句的执行状态,便于分析慢查询:

    STATE说明
    NULL没有运行中的 SQL
    Checking table正在检查表
    Sending data正在返回结果集
    Locked事务锁等待中
    Copying to tmp table正在创建临时表(可能影响性能)
    Sorting result正在执行排序
    Waiting for table lock等待表锁(可能导致阻塞)
  • 找出所有正在等待锁的查询

    SELECT * FROM information_schema.processlist WHERE STATE LIKE '%lock%';
    
8️⃣ INFO(正在执行的 SQL 语句)
  • 显示当前连接正在执行的 SQL 语句(可能为空)。
  • 如果 SHOW PROCESSLIST; 只显示部分 SQL,可以用 SHOW FULL PROCESSLIST; 查看完整 SQL

🔹 实用 SQL 监控示例

✅ 查询当前连接数
SELECT COUNT(*) FROM information_schema.processlist;
✅ 查询每个用户的连接数
SELECT USER, COUNT(*) AS conn_count 
FROM information_schema.processlist 
GROUP BY USER 
ORDER BY conn_count DESC;
✅ 查询当前执行 SQL 语句最多的 IP
SELECT HOST, COUNT(*) AS conn_count 
FROM information_schema.processlist 
WHERE COMMAND != 'Sleep' 
GROUP BY HOST 
ORDER BY conn_count DESC;
✅ 查询执行时间超过 10 秒的 SQL
SELECT * FROM information_schema.processlist WHERE COMMAND='Query' AND TIME > 10;
✅ 查询所有正在执行的 SQL
SELECT ID, USER, HOST, DB, TIME, STATE, INFO 
FROM information_schema.processlist 
WHERE COMMAND='Query';
✅ 终止某个慢查询
KILL 12345;

🔹 结论

  • information_schema.processlist 提供所有连接的详细信息,是 MySQL 监控的重要工具。
  • 结合 COMMANDSTATETIMEINFO 字段,可以分析慢查询、找出死锁、清理空闲连接,优化数据库性能。

🚀 建议

  • 结合 SHOW FULL PROCESSLIST; 获取完整 SQL 语句。
  • 监控 Sleep 连接数,避免过多空闲连接浪费资源。
  • 关注 LockedWaiting for table lock 等状态,检查是否有事务阻塞

这样可以更好地管理 MySQL 连接,提升数据库的稳定性和性能!🎯


http://www.niftyadmin.cn/n/5869591.html

相关文章

Qt 开源音视频框架模块之QtAV播放器实践

Qt 开源音视频框架模块QtAV播放器实践 1 摘要 QtAV是一个基于Qt的多媒体框架,旨在简化音视频播放和处理。它是一个跨平台的库,支持多种音视频格式,并提供了一个简单易用的API来集成音视频功能。QtAV的设计目标是为Qt应用程序提供强大的音视…

WEBPACK打包器的使用 打包器的安全问题(源码泄露) 还原

前言 webpack是一个可以把多个前端页面进行打包的工具 他其实也是node js的延伸 可以进行打包node.js文件 基本使用 1、一键命令打包 创建一个 app目录 下设 index.html runboot.js 我们练习对Runboot.js进行打包 一键打包 命令 npx webpack app/runboot…

记一次pytorch训练loss异常的问题

记一次pytorch训练loss异常的问题 问题描述 使用mmdetection框架训练时,某项loss出现异常大的值,比如1781232349724294.000。这个问题只在多卡训练时才会出现。 解决方法 在确认target和predction没有问题后,发现是在dataset中的数据处理…

android keystore源码分析

架构 Android Keystore API 和底层 Keymaster HAL 提供了一套基本的但足以满足需求的加密基元,以便使用访问受控且由硬件支持的密钥实现相关协议。 Keymaster HAL 是由原始设备制造商 (OEM) 提供的动态加载库,密钥库服务使用它来提供由硬件支持的加密服…

OpenCV计算摄影学(3)CUDA 图像去噪函数fastNlMeansDenoising()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用非局部均值去噪算法(Non-local Means Denoising algorithm)执行图像去噪,该算法来源于 http://www.ipol.…

【错误记录】Arrays.asList 的坑

文章目录 概要原因小结 概要 最近在写一个需求的时候用到了这个方法生成一个 List&#xff0c;接着再往里面添加数据的时候就报错了&#xff0c;比如下面的例子。 public class Main {public static void main(String[] args) {List<Integer> res Arrays.asList(1, 2,…

apache-maven-3.2.1

MAVEN_HOME D:\apache-maven-3.2.1 PATH D:\apache-maven-3.2.1\bin cmd mvn -v <localRepository>d:\localRepository</localRepository> setting.xml <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Soft…

java23种设计模式-中介者模式

中介者模式&#xff08;Mediator Pattern&#xff09;学习笔记 编程相关书籍分享&#xff1a;https://blog.csdn.net/weixin_47763579/article/details/145855793 DeepSeek使用技巧pdf资料分享&#xff1a;https://blog.csdn.net/weixin_47763579/article/details/145884039 1.…