首页 > 数据库 >MySQL8.x 中 performance_schema 下 processlist表的说明

MySQL8.x 中 performance_schema 下 processlist表的说明

时间:2023-11-27 17:55:21浏览次数:50  
标签:MySQL8 线程 MySQL processlist performance NULL schema

MySQL8.x 中 performance_schema 下 processlist表的说明

  • 最近在研究一个MySQL数据库的监控相关功能的系统的实现,因此专门研究了一下processlist表。processlist表为MySQL的核心表之一。MySQL processlist 表示当前由服务器内执行的线程集执行的操作。 进程列表表是进程信息的来源之一

INFORMATION_SCHEMA 库中的 PROCESSLIST在8.0以后的版本被标记为弃用,并将在未来的 MySQL 版本中被移除。因此,使用此表的 SHOW PROCESSLIST 的实现也已被弃用。建议改用 performance_schema 实现的 processlist。

在结构上,两张表的结构基本相同,高版本中performance_schema下的表比infomation_schema中表多一个execution_engine(执行引擎)字段

processlist表可以直接被访问。如果用户拥有 PROCESS权限,则可以访问所有线程的信息(包含其他用户的线程信息)。非匿名用户可以访问自己的线程信息、但不能访问其他用户的线程信息,匿名用户无法访问processlist中的线程信息。

1. 使用方法:

mysql> select * from performance_schema.processlist\G;
*************************** 1. row ***************************
     ID: 5
   USER: event_scheduler
   HOST: localhost
     DB: NULL
COMMAND: Daemon
   TIME: 21411
  STATE: Waiting on empty queue
   INFO: NULL
*************************** 2. row ***************************
     ID: 714
   USER: root
   HOST: localhost
     DB: performance_schema
COMMAND: Query
   TIME: 0
  STATE: executing
   INFO: select * from performance_schema.processlist
2 rows in set (0.00 sec)

2. 表结构:

mysql> desc processlist;
+---------+-----------------+------+-----+---------+-------+
| Field   | Type            | Null | Key | Default | Extra |
+---------+-----------------+------+-----+---------+-------+
| ID      | bigint unsigned | NO   | PRI | NULL    |       |
| USER    | varchar(32)     | YES  |     | NULL    |       |
| HOST    | varchar(261)    | YES  |     | NULL    |       |
| DB      | varchar(64)     | YES  |     | NULL    |       |
| COMMAND | varchar(16)     | YES  |     | NULL    |       |
| TIME    | bigint          | YES  |     | NULL    |       |
| STATE   | varchar(64)     | YES  |     | NULL    |       |
| INFO    | longtext        | YES  |     | NULL    |       |
+---------+-----------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

3.字段说明

  • ID

连接标识符。这是在 SHOW PROCESSLIST 语句的 Id 列中显示的相同值,显示在 Performance Schema 线程表的 PROCESSLIST_ID 列中,并在线程内通过 CONNECTION_ID() 函数返回的值相同。

  • USER

发出该语句的 MySQL 用户。system user 的值指的是由服务器生成的非客户端线程,用于在内部处理任务,例如延迟行处理线程或在复制主机上用于处理 I/O 或 SQL 的线程。对于 system user,Host 列中没有指定主机。unauthenticated user 指的是已与客户端连接关联但尚未对客户端用户进行身份验证的线程。event_scheduler 指的是监视预定事件的线程。

  • HOST

发出该语句的客户端的主机名(对于 system user 则没有主机)。对于 TCP/IP 连接,主机名以 host:port(主机地址:端口) 的格式显示,以便更容易确定哪个客户端在执行什么操作。

  • DB

线程的默认数据库,如果未选择任何数据库,则为 NULL。

  • COMMAND

线程代表客户端执行的命令类型,如果会话处于空闲状态,则为 Sleep。此列的值对应于客户端/服务器协议的 COM_xxx 命令和 Com_xxx 状态变量。

  • TIME

线程在当前状态下已经经过的时间,以秒为单位。对于复制 SQL 线程,该值是上一个复制事件的时间戳与复制主机的实际时间之间的秒数。

  • STATE

一个动作、事件或状态,表示线程正在进行的操作。大多数状态对应非常快速的操作。如果一个线程在特定状态停留了很多秒,可能存在需要调查的问题。

  • INFO

线程正在执行的语句,如果没有执行语句则为 NULL。该语句可以是发送给服务器的语句,或者如果该语句执行其他语句,则为最内层的语句。

  • EXECUTION_ENGINE

查询执行引擎。该值可以是 PRIMARY 或 SECONDARY。在 MySQL HeatWave Service 和 HeatWave 中使用,其中 PRIMARY 引擎是 InnoDB,而 SECONDARY 引擎是 HeatWave(RAPID)。对于社区版本、企业版(本地部署)以及没有 HeatWave 的 MySQL HeatWave Service,该值始终为 PRIMARY。

4. COMMAND和STATE字段值说明

  • COMMAND字段说明:
  • Binlog Dump 表示这是一个在复制源上的线程,负责将二进制日志内容发送到副本
  • Change user 表示该线程正在执行一个改变用户操作
  • Close stmt 该线程正在关闭一个 prepared statement.
  • Connect
  • Connect Out
  • Create DB
  • Daemon
  • Debug
  • Delayed insert
  • Drop DB
  • Error
  • Execute
  • Fetch
  • Field List
  • Init DB
  • Kill
  • Long Data
  • Ping
  • Prepare
  • Processlist
  • Query
  • Quit
  • Refresh
  • Register Slave
  • Reset stmt
  • Set option
  • Shutdown
  • Sleep
  • Statistics
  • Time

COMMAND字段说明参考:https://dev.mysql.com/doc/refman/8.0/en/thread-commands.html

STATE 字段说明参考:https://dev.mysql.com/doc/refman/8.0/en/general-thread-states.html

5. 参考文档

标签:MySQL8,线程,MySQL,processlist,performance,NULL,schema
From: https://www.cnblogs.com/404developer/p/17859973.html

相关文章

  • 5.mysql8.0以上版本,ProxySQL 监控/连接账户,要以 mysql_native_password 形式创建,否则
    CREATEUSER'monitor'@'%'IDENTIFIEDBY'123456';grantallprivilegeson*.*to'monitor'@'%'withgrantoption;flushprivileges; ALTERUSER'root'@'%'IDENTIFIEDWITHmysql_native_pa......
  • mysql8下载安装及配置
    一、下载官网地址:https://dev.mysql.com/downloads/mysql/8.0.html选择“downloads”-->"mysqlcommunityserver",如下图所示:向下滑动页面,找到你电脑适配的版本,点击“download”,如下图:页面跳转,不需要注册和登陆,点击“Nothanks,juststartmydownload.......
  • MySQL8.0新特性
    MySql8的其他新特性1.MySQL8新特性概述MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQLOptimizer优化器进行了改进。不仅在速度上得到了改善,还为......
  • Performance Improvements in .NET 8 -- Exceptions & Reflection & Primitives【翻译
    Exceptions在.NET6中,ArgumentNullException增加了一个ThrowIfNull方法,我们开始尝试提供“抛出助手”。该方法的目的是简洁地表达正在验证的约束,让系统在未满足约束时抛出一致的异常,同时也优化了成功和99.999%的情况,无需抛出异常。该方法的结构是这样的,执行检查的快速路径被......
  • Performance Improvements in .NET 8 -- Exceptions & Reflection & Primitives【翻译
    Exceptions在.NET6中,ArgumentNullException增加了一个ThrowIfNull方法,我们开始尝试提供“抛出助手”。该方法的目的是简洁地表达正在验证的约束,让系统在未满足约束时抛出一致的异常,同时也优化了成功和99.999%的情况,无需抛出异常。该方法的结构是这样的,执行检查的快速路径被......
  • MySQL8 安装后 data文件夹迁移
    安装后data文件夹默认在C盘:C:\ProgramData\MySQL\MySQLServer8.0\Data想迁移到D盘:1、停止MySQL服务2、将Data文件夹剪切到D盘3、修改 C:\ProgramData\MySQL\MySQLServer8.0\my.ini,将datadir参数修改为新路径:D:/AMySQL80\Data(注意路径中间是左斜杆,最后一个是右斜杠,全用......
  • mysql8 更改加密方式
    先通过命令行进入mysql的root账户:更改加密方式ALTERUSER'root'@'localhost'IDENTIFIEDBY'password'PASSWORDEXPIRENEVER;更改密码ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'password';......
  • SQLyog 连接 MySQL8.0 提示密码错误(错误号码:2508)
    原因分析:MySQL8.0安装时自动为‘root’@'localhost’创建帐户,密码的加密方法发生了改变,因此SQLyog不能正常解析,才报出如上错误。解决方法:可解决先安装MySQL8.0并且已经已对操作过数据库后,再安装SQLyog首次登陆会出现密码错误。进入cmd输入(******是mysql的密码):mysq......
  • Brew安装的MySQL8.0忘记密码修改密码
    #查看my.ini位置$mysqld--help--verbose|more#找到这一行,挨个试试,看存不存在#/etc/my.cnf/etc/mysql/my.cnf/usr/local/etc/my.cnf~/.my.cnf$ls/etc/my.cnfls:/etc/my.cnf:Nosuchfileordirectory$ls/etc/mysql/my.cnfls:/etc/mysql/my.cnf:Nos......
  • High-performance computing (HPC)
    ConceptsdiscriminationWhatistherealtionshipsamongparallelcomputing,high-performancecomputingandsupercomputing?parallelcomputing:usingmultiplecomputingcoretocomputeajobhigh-performancecomputing:atypeofparallelcomputing,an......