You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中performance_schema.accounts表信息解读及NULL用户识别方法

MySQL performance_schema.accounts相关问题解答

1. performance_schema.accounts表能获取哪些信息

这个表是MySQL按用户+客户端主机维度统计的连接汇总数据,主要包含以下核心字段:

  • USER: 发起连接的MySQL用户名
  • HOST: 客户端的主机地址(或IP)
  • CURRENT_CONNECTIONS: 当前该用户/主机组合的活跃连接数
  • TOTAL_CONNECTIONS: 该用户/主机组合累计发起的总连接数(包含已断开的连接)

2. USER和HOST均为NULL的含义

这条记录代表未匹配到具体用户的连接统计,常见场景包括:

  • 匿名用户的连接(客户端未提供用户名密码的访问)
  • MySQL内部系统连接(如后台线程、监控类内部连接)
  • 当performance_schema刚初始化,还没有其他已认证用户连接时,所有初始连接会被归到这个NULL分组

3. 如何识别当前已登录用户及对应连接数

如果show processlist信息不足,可以用以下更精准的查询方式:

统计每个用户的当前连接数

SELECT USER, HOST, COUNT(*) AS current_connection_count
FROM performance_schema.processlist
WHERE USER IS NOT NULL
GROUP BY USER, HOST;

该查询按用户和主机分组,直接得到每个用户的实时活跃连接数。

查看用户连接的详细信息

若需要了解每个连接的具体状态、执行的SQL等,可直接查询performance_schema.processlist表:

SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO
FROM performance_schema.processlist
WHERE USER IS NOT NULL;

其中INFO字段会显示连接当前执行的SQL语句(如果有的话),STATE字段能看到连接的当前状态(如Sleep、Query等)。

结合汇总与详细连接信息

如果需要同时查看累计连接数和当前活跃连接的ID,可关联accounts和processlist表:

SELECT 
    a.USER,
    a.HOST,
    a.CURRENT_CONNECTIONS,
    a.TOTAL_CONNECTIONS,
    GROUP_CONCAT(p.ID SEPARATOR ', ') AS active_connection_ids
FROM performance_schema.accounts a
LEFT JOIN performance_schema.processlist p
    ON a.USER = p.USER AND a.HOST = p.HOST
WHERE a.USER IS NOT NULL
GROUP BY a.USER, a.HOST, a.CURRENT_CONNECTIONS, a.TOTAL_CONNECTIONS;

内容的提问来源于stack exchange,提问作者shiwam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:28:29