7.1.10 服务器状态变量
MySQL 服务器维护了许多状态变量,提供了关于其操作的信息。您可以使用 SHOW [GLOBAL | SESSION] STATUS
语句(见第15.7.7.36节,“SHOW STATUS 语句”) 查看这些变量和它们的值。可选的 GLOBAL
关键字将聚合所有连接的值,而 SESSION
显示当前连接的值。
mysql> SHOW GLOBAL STATUS;
+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Bytes_received | 155372598 |
| Bytes_sent | 1176560426 |
...
| Connections | 30023 |
| Created_tmp_disk_tables | 0 |
| Created_tmp_files | 3 |
| Created_tmp_tables | 2 |
...
| Threads_created | 217 |
| Threads_running | 88 |
| Uptime | 1389872 |
+-----------------------------------+------------+
许多状态变量将在 FLUSH STATUS
语句中重置为 0。
本节提供了每个状态变量的描述。关于状态变量的总结,请见第7.1.6节,“服务器状态变量参考”。关于 NDB 集群特定的状态变量,请见第25.4.3.9.3节,“NDB 集群状态变量”。
状态变量具有以下含义。
-
由于客户端在关闭连接时没有正确关闭连接而被中断的连接数。见第B.3.2.9节,“通信错误和中断连接”。
-
尝试连接到 MySQL 服务器的失败次数。见第B.3.2.9节,“通信错误和中断连接”。
对于连接相关的其他信息,请查看
Connection_errors_
状态变量和主机缓存表。xxx
-
Authentication_ldap_sasl_supported_methods
实现 SASL LDAP 认证的
authentication_ldap_sasl
插件支持多种认证方法,但根据主机系统配置,这些方法可能不可用。状态变量Authentication_ldap_sasl_supported_methods
提供了支持的方法的 discoverability。其值是一个字符串,包含了支持的方法名称,使用空格分隔。例如:"SCRAM-SHA 1 SCRAM-SHA-256 GSSAPI"
-
存储了临时二进制日志缓存的交易数,但这些交易超过了
binlog_cache_size
的值,并使用临时文件存储来自交易的语句。跟踪了非事务语句使二进制日志事务缓存写入磁盘的次数,这些信息可以在
Binlog_stmt_cache_disk_use
状态变量中找到。 -
缓存的权限对象数量,每个对象是用户和其活动角色的权限组合。
-
使用二进制日志缓存的事务数。
-
使用二进制日志语句缓存的事务数,但这些事务超过了
binlog_stmt_cache_size
的值,并使用临时文件存储这些语句。 -
使用二进制日志语句缓存的事务数。
-
从所有客户端接收的字节数。
-
向所有客户端发送的字节数。
-
Caching_sha2_password_rsa_public_key
用于
caching_sha2_password_private_key_path
和caching_sha2_password_public_key_path
系统变量中指定的私钥和公钥对的公钥。该值仅在服务器成功初始化私钥和公钥文件时才非空。该值来自Caching_sha2_password_rsa_public_key
文件。 -
《
Com_
》语句计数变量表示每个《xxx
》语句执行的次数。对于每种语句类型,存在一个状态变量。例如,xxx
Com_delete
和Com_update
计数DELETE
和UPDATE
语句,分别。Com_delete_multi
和Com_update_multi
类似,但适用于使用多表语法的DELETE
和UPDATE
语句。所有《
Com_stmt_
》变量都将在执行时增加,即使预备语句参数未知或执行时发生错误。在其他字面上,这些变量的值对应于发出的请求数量,而不是成功完成的请求数量。例如,因为状态变量在每个服务器启动时初始化,并且不跨越重启,因此xxx
Com_restart
和Com_shutdown
变量,用于跟踪RESTART
和SHUTDOWN
语句,通常的值为零,但可以是非零,如果RESTART
或SHUTDOWN
语句执行但失败。《
Com_stmt_
》状态变量如下:xxx
-
Com_stmt_prepare
-
Com_stmt_execute
-
Com_stmt_fetch
-
Com_stmt_send_long_data
-
Com_stmt_reset
-
Com_stmt_close
这些变量代表预先编译的语句命令。它们的名称引用网络层中使用的
COM_
命令集。在其他字面上,他们的值将在执行预先编译的语句API调用,如mysql_stmt_prepare()、mysql_stmt_execute()等时增加。然而,xxx
Com_stmt_prepare
、Com_stmt_execute
和Com_stmt_close
也将在执行PREPARE
、EXECUTE
或DEALLOCATE PREPARE
语句时增加。另外,旧的语句计数变量Com_prepare_sql
、Com_execute_sql
和Com_dealloc_sql
将在执行PREPARE
、EXECUTE
和DEALLOCATE PREPARE
语句时增加。Com_stmt_reprepare
表示服务器自动重新编译语句的次数,例如,在表或视图的元数据更改后。重新编译操作将增加Com_stmt_reprepare
,并且也将增加Com_stmt_prepare
。Com_explain_other
表示执行EXPLAIN FOR CONNECTION
语句的次数。请参阅Section 10.8.4,“Obtaining Execution Plan Information for a Named Connection”。Com_change_repl_filter
表示执行CHANGE REPLICATION FILTER
语句的次数。 -
-
客户端连接是否使用压缩在客户端/服务器协议中。
这个状态变量已弃用;在未来的MySQL版本中将被删除。请参阅Configuring Legacy Connection Compression。
-
当前连接到服务器的压缩算法名称。该值可以是
protocol_compression_algorithms
系统变量的允许值。例如,如果连接不使用压缩,该值为uncompressed
,如果连接使用zlib
算法,该值为zlib
。 -
当前连接到服务器的压缩级别。该值为
zlib
连接的默认压缩级别(6),为zstd
连接的压缩级别(1-22),为uncompressed
连接的压缩级别(0)。 -
这些变量提供了连接过程中发生的错误信息。它们是全局的,代表了来自所有主机的连接错误计数。这些变量跟踪的是主机缓存中不包括的错误,例如不相关的TCP连接错误、发生在连接过程早期(甚至在IP地址未知时)或不特定IP地址的错误(例如内存不足错误)。
-
在监听端口上对
accept()
的调用中发生的错误次数。 -
由于服务器内部错误,例如无法启动新线程或内存不足,导致的连接拒绝次数。
-
Connection_errors_max_connections
由于服务器
max_connections
限制达到最大连接数的次数。 -
Connection_errors_peer_address
在搜索连接客户端IP地址时发生的错误次数。
-
连接错误的数量,发生在对监听端口的
select()
或poll()
调用中。 (失败并不一定意味着客户端连接被拒绝。) -
libwrap库拒绝的连接数量。
-
-
MySQL 服务器的连接尝试次数(成功或失败)。
-
服务器在执行语句时创建的内部磁盘临时表数量。
您可以将内部磁盘临时表创建的数量与总的内部临时表创建数量进行比较,通过比较
Created_tmp_disk_tables
和Created_tmp_tables
值。Note由于已知的限制,
Created_tmp_disk_tables
不计入内存映射文件中创建的磁盘临时表。默认情况下,TempTable存储引擎溢出机制在内存映射文件中创建内部临时表。这一行为由temptable_use_mmap
变量控制。 -
mysqld创建的临时文件数量。
-
服务器在执行语句时创建的内部临时表数量。
您可以将内部磁盘临时表创建的数量与总的内部临时表创建数量进行比较,通过比较
Created_tmp_disk_tables
和Created_tmp_tables
值。请参见Section 10.4.4, “Internal Temporary Table Use in MySQL”.
每次对
SHOW STATUS
语句的调用都会使用一个内部临时表,并将全局Created_tmp_tables
值递增。 -
服务器当前使用的SSL上下文中的
ssl_ca
值。这可能与当前ssl_ca
系统变量值不同,如果系统变量已经被更改,但ALTER INSTANCE RELOAD TLS
语句还没有执行,以便重新配置SSL上下文从上下文相关的系统变量值中,并更新相应的状态变量。 (这可能会导致每对上下文相关的系统变量和状态变量对应的值不同。详见Server-Side Runtime Configuration and Monitoring for Encrypted Connections。)状态变量
Current_tls_
也可以通过性能_schemaSection 29.12.22.9, “The tls_channel_status Table”表获取。详见Section 29.12.22.9, “The tls_channel_status Table”。xxx
-
服务器当前使用的TLS上下文中的
ssl_capath
值。关于这两个状态变量和系统变量之间关系的描述,请查看Current_tls_ca
的描述。 -
服务器当前使用的TLS上下文中的
ssl_cert
值。关于这两个状态变量和系统变量之间关系的描述,请查看Current_tls_ca
的描述。 -
当前
ssl_cipher
值在服务器用于新连接的TLS上下文中。关于该状态变量与对应系统变量之间的关系,请查看Current_tls_ca
的描述。 -
当前
tls_ciphersuites
值在服务器用于新连接的TLS上下文中。关于该状态变量与对应系统变量之间的关系,请查看Current_tls_ca
的描述。 -
当前
ssl_crl
值在服务器用于新连接的TLS上下文中。关于该状态变量与对应系统变量之间的关系,请查看Current_tls_ca
的描述。Note当您重新加载TLS上下文时,OpenSSL将重新加载包含CRL(证书撤销列表)的文件作为该过程的一部分。如果CRL文件很大,服务器将分配一个大块内存(文件大小的十倍),在新实例被加载时将其 doubled,而老实例还没有释放。进程resident内存使用可能会因此而增加,如果您重复执行
ALTER INSTANCE RELOAD TLS
语句,并且使用了大CRL文件。 -
当前
ssl_crlpath
值在服务器用于新连接的TLS上下文中。关于该状态变量与对应系统变量之间的关系,请查看Current_tls_ca
的描述。 -
当前
ssl_key
值在服务器用于新连接的TLS上下文中。关于该状态变量与对应系统变量之间的关系,请查看Current_tls_ca
的描述。 -
当前
tls_version
值是服务器用于新连接的TLS上下文中的活动值。关于该状态变量与其对应系统变量之间的关系,请查看Current_tls_ca
的描述。 -
该状态变量已弃用(因为
DELAYED
插入不受支持);预计将在未来的版本中删除。 -
该状态变量已弃用(因为
DELAYED
插入不受支持);预计将在未来的版本中删除。 -
该状态变量已弃用(因为
DELAYED
插入不受支持);预计将在未来的版本中删除。 -
Deprecated_use_i_s_processlist_count
自最后一次重启以来,
information_schema.processlist
表被访问的次数。 -
Deprecated_use_i_s_processlist_last_timestamp
自最后一次重启以来,
information_schema.processlist
表最后被访问的时间。显示自Unix纪元以来的微秒。 -
最近一次对
dragnet.log_error_filter_rules
系统变量的赋值结果,如果没有这样的赋值,则为空。 -
性能_schema
error_log
表当前使用的字节数。可能的值减少,例如,如果一个新事件不能立即写入,直到丢弃一个旧事件,但新事件小于旧事件。 -
当前Performance Schema
错误日志
表中的事件数量。与Error_log_buffered_bytes
类似,这个值可能会减少。 -
为了腾出空间存储新的事件,Performance Schema
错误日志
表中已删除的事件数量。 -
Performance Schema
错误日志
表的最后一次写入时间。 -
服务器flush表的次数,这可能是用户执行
FLUSH TABLES
语句或是服务器内部操作的结果。此外,还包括Com_flush
,后者表示执行FLUSH TABLES
、FLUSH LOGS
等语句的次数。 -
服务器中的所有用户连接使用的内存。系统线程或root用户使用的内存也包括在内,但这些线程或用户不会因为内存使用而被断开连接。这个内存只有在
global_connection_memory_tracking
启用时才会被计算。Performance Schema也需要启用。您可以通过设置
connection_memory_chunk_size
来控制这个变量的更新频率。 -
内部
COMMIT
语句的数量。 -
从表中删除的行数。
-
服务器将在每次对表实例的
external_lock()
函数调用时递增该变量,这通常发生在对表的开始和结束访问时。可能存在存储引擎之间的差异。该变量可以用来发现一个语句访问分区表时锁定的分区数:检查语句的计数器增加了多少,然后减去2(对表本身的2次调用),最后除以2以获取锁定的分区数。 -
服务器使用存储引擎自己的Multi-Range Read实现来访问表的次数。
-
两阶段提交操作的准备阶段的计数器。
-
读取索引的首个条目的次数。如果该值很高,可能表明服务器正在执行大量的全索引扫描(例如,
SELECT col1 FROM foo
,假设col1
是索引的)。 -
基于键的行请求次数。如果该值很高,可能表明您的表已经正确地索引了您的查询。
-
读取索引的最后一个键的次数。使用
ORDER BY
时,服务器将发出首个键请求,然后是多个下一个键请求,而使用ORDER BY DESC
时,服务器将发出最后一个键请求,然后是多个前一个键请求。 -
基于键顺序读取下一个行的次数。这可能是由于您正在查询索引列的范围约束或执行索引扫描。
-
基于键顺序读取前一个行的次数。这读方法主要用于优化
ORDER BY ... DESC
。 -
基于固定位置读取行的次数。如果该值很高,可能表明您正在执行大量的排序查询,您可能需要调整查询以提高性能。
-
读取下一个数据文件中的行的请求数量。这一值高,如果您正在执行大量表扫描。通常,这表明您的表未正确索引或查询未使用现有索引。
-
存储引擎执行回滚操作的请求数量。
-
存储引擎将保存点的请求数量。
-
存储引擎回滚到保存点的请求数量。
-
更新表中的行的请求数量。
-
插入表中的行的请求数量。
-
Innodb_buffer_pool_dump_status
InnoDB缓冲池记录操作的进度,该操作由设置
innodb_buffer_pool_dump_at_shutdown
或innodb_buffer_pool_dump_now
触发。有关相关信息和示例,请见第17.8.3.6节,“保存和恢复缓冲池状态”。
-
Innodb_buffer_pool_load_status
InnoDB缓冲池暖启动操作的进度,该操作由设置
innodb_buffer_pool_load_at_startup
或innodb_buffer_pool_load_now
触发。如果操作引入太多开销,您可以通过设置innodb_buffer_pool_load_abort
取消它。相关信息和示例,请见第17.8.3.6节,“保存和恢复缓冲池状态”。
-
缓冲池中包含数据的总字节数。该数字包括了脏页和干净页。对于使用压缩表时,缓冲池中页的大小不同时的更准确的内存使用计算。
-
缓冲池中包含数据的总页数。该数字包括了脏页和干净页。使用压缩表时,报告的
Innodb_buffer_pool_pages_data
值可能大于Innodb_buffer_pool_pages_total
(Bug #59550)。 -
Innodb_buffer_pool_bytes_dirty
当前缓冲池中脏页的总字节数。对于使用压缩表时,缓冲池中页的大小不同时的更准确的内存使用计算。
-
Innodb_buffer_pool_pages_dirty
当前缓冲池中脏页的总数。
-
Innodb_buffer_pool_pages_flushed
-
InnoDB 缓冲池中的页面的空闲数量。
-
Innodb_buffer_pool_pages_latched
InnoDB 缓冲池中的页面的锁定数量。这些页面当前正在读取或写入,或者不能刷新或删除,因为某些原因。该变量的计算是昂贵的,因此在服务器构建时定义
UNIV_DEBUG
系统时才可用。 -
InnoDB 缓冲池中的页面的总数量,这些页面因为行锁或自适应哈希索引而被占用。这也可以通过
Innodb_buffer_pool_pages_total
−Innodb_buffer_pool_pages_free
−Innodb_buffer_pool_pages_data
进行计算。在使用压缩表时,Innodb_buffer_pool_pages_misc
可能会报告超出范围的值(Bug #59550)。 -
Innodb_buffer_pool_pages_total
InnoDB 缓冲池的总大小,单位为页面。使用压缩表时,报告的
Innodb_buffer_pool_pages_data
值可能大于Innodb_buffer_pool_pages_total
(Bug #59550) -
Innodb_buffer_pool_read_ahead_evicted
-
Innodb_buffer_pool_read_ahead_rnd
InnoDB 中的随机读取次数。这发生在查询扫描大部分的表,但是在随机顺序时。
-
Innodb_buffer_pool_read_requests
逻辑读取请求的数量。
-
InnoDB 无法从缓冲池中满足的逻辑读取次数,需要从磁盘直接读取。
-
Innodb_buffer_pool_resize_status
InnoDB 缓冲池的动态调整状态,通过设置
innodb_buffer_pool_size
参数动态调整。该参数是动态的,可以在不重新启动服务器的情况下调整缓冲池的大小。详见Configuring InnoDB Buffer Pool Size Online。 -
Innodb_buffer_pool_resize_status_code
跟踪在线缓冲池调整操作的状态代码。每个状态代码都表示调整操作的一种阶段。状态代码包括:
-
0: 没有调整操作进行中
-
1: 开始调整
-
2: 停用 Adaptive Hash Index
-
3: 释放块
-
4: 获取全局锁
-
5: 调整池
-
6: 调整哈希
-
7: 调整失败
您可以使用该状态变量在
Innodb_buffer_pool_resize_status_progress
的帮助下跟踪每个阶段的调整操作的进度。该变量报告当前阶段的进度百分比。 -
-
Innodb_buffer_pool_resize_status_progress
报告当前阶段的调整操作的进度百分比。该变量与
Innodb_buffer_pool_resize_status_code
一起使用,报告当前阶段的状态代码。百分比值在每个缓冲池实例被处理后更新。状态代码(由
Innodb_buffer_pool_resize_status_code
报告)从一个状态到另一个状态变化时,百分比值将被重置为0。 -
通常,
InnoDB
缓冲池的写入操作通常在后台进行。当InnoDB
需要读取或创建一个页面,但没有可用的干净页面时,InnoDB
将flush一些dirty page,然后等待该操作完成。这一计数器记录了这些等待的次数。如果innodb_buffer_pool_size
已经正确设置,这个值应该很小。 -
Innodb_buffer_pool_write_requests
对
InnoDB
缓冲池的写入次数。 -
到目前为止的
fsync()
操作次数。fsync()
调用频率受innodb_flush_method
配置选项的影响。如果启用了
innodb_use_fdatasync
,则计数fdatasync()
操作次数。 -
当前的
fsync()
操作次数。fsync()
调用频率受innodb_flush_method
配置选项的影响。 -
当前的读取次数。
-
当前的写入次数。
-
自服务器启动以来读取的数据量(以字节为单位)。
-
总的数据读取次数(OS文件读取次数)。
-
总的数据写入次数。
-
到目前为止写入的数据量,单位为字节。
-
已将页面写入到双写缓冲区的数量。请参阅第17.11.1节,“InnoDB Disk I/O”。
-
已执行的双写操作数量。请参阅第17.11.1节,“InnoDB Disk I/O”。
-
指示服务器是否使用原子指令。
-
日志缓冲区太小,需要等待它被刷新的次数。
-
redo日志的写入请求数量。
-
redo日志文件的物理写入数量。
-
当前打开的文件数量。
-
redo日志文件的fsync写入数量。
-
redo日志文件的pending fsync操作数量。
-
InnoDB日志中待写入的记录数量。
-
InnoDB日志中写入的字节数。
-
InnoDB页面大小(默认16KB)。许多值以页面为单位,页面大小使其可以轻松转换为字节。
-
InnoDB表的操作创建的页面数量。
-
InnoDB缓冲池中由InnoDB表的操作读取的页面数量。
-
InnoDB表的操作写入的页面数量。
-
redo日志是否启用或禁用。请参阅Disabling Redo Logging。
-
Innodb_redo_log_capacity_resized
redo日志文件的总容量(以字节为单位),包括普通和备用redo日志文件。该值包括最后一个完成的容量调整操作后的总容量。
如果没有pending resize down操作,
Innodb_redo_log_capacity_resized
应该等于innodb_redo_log_capacity
设置的值,如果使用的是这两个设置,或者是((innodb_log_files_in_group * innodb_log_file_size))如果使用的是这两个设置。详细信息请参阅innodb_redo_log_capacity
文档。resize up操作是瞬时的。相关信息请参阅Section 17.6.5, “Redo Log”。
-
Innodb_redo_log_checkpoint_lsn
redo日志检查点LSN。有关相关信息,请见第17.6.5节,“Redo Log”。
-
当前LSN表示redo日志缓冲区中最后写入的位置。
InnoDB
在MySQL进程中将数据写入redo日志缓冲区,然后请求操作系统将数据写入当前redo日志文件。有关相关信息,请见第17.6.5节,“Redo Log”。 -
Innodb_redo_log_flushed_to_disk_lsn
flushed到磁盘LSN。
InnoDB
首先将数据写入redo日志,然后请求操作系统将数据flush到磁盘。flushed到磁盘LSN表示InnoDB
知道的最后一个redo日志位置,该位置已经flush到磁盘。有关相关信息,请见第17.6.5节,“Redo Log”。 -
逻辑大小值,表示LSN范围内的redo日志数据大小,该范围从redo日志消费者所需的最老块到最新写入的块。有关相关信息,请见第17.6.5节,“Redo Log”。
-
当前使用的redo日志文件磁盘空间大小,excluding spare redo log files。有关相关信息,请见第17.6.5节,“Redo Log”。
-
redo日志是否只读。
-
redo日志resize状态,表示当前redo日志容量resize机制的状态。可能的值包括:
-
OK
:没有问题,无pending redo日志容量resize操作。 -
Resizing down
:resize down操作正在进行中。
resize up操作是瞬态的,因此没有pending状态。
-
-
redo日志UUID。
-
从InnoDB表中删除的行数。
-
向InnoDB表中插入的行数。
-
从InnoDB表中读取的行数。
-
对InnoDB表的更新操作的行数。
Note该值不保证100%的准确性。为了获取准确的结果,请使用
ROW_COUNT()
函数。 -
从InnoDB表中删除的系统创建的行数。
-
系统创建的架构中插入到
InnoDB
表中的行数。 -
系统创建的架构中更新的
InnoDB
表中的行数。 -
系统创建的架构中读取的
InnoDB
表中的行数。 -
Innodb_truncated_status_writes
SHOW ENGINE INNODB STATUS语句的输出被截断的次数。
-
Innodb_undo_tablespaces_active
活动的undo表空间数。包括隐式(
InnoDB
-创建)和明确(用户创建)的undo表空间。关于undo表空间的信息,请参见第17.6.3.4节,“Undo Tablespaces”。 -
Innodb_undo_tablespaces_explicit
用户创建的undo表空间数。关于undo表空间的信息,请参见第17.6.3.4节,“Undo Tablespaces”。
-
Innodb_undo_tablespaces_implicit
由
InnoDB
创建的undo表空间数。两个默认undo表空间是在MySQL实例初始化时由InnoDB
创建的。关于undo表空间的信息,请参见第17.6.3.4节,“Undo Tablespaces”。 -
总的undo表空间数。包括隐式(
InnoDB
-创建)和明确(用户创建)的undo表空间,包括活动和非活动的。关于undo表空间的信息,请参见第17.6.3.4节,“Undo Tablespaces”。 -
MyISAM索引缓存中的键块数,其中有变化但还没有被刷新到磁盘的键块数。
-
MyISAM键缓存中的未使用块的数量。您可以使用该值来确定键缓存的使用情况;请参阅
key_buffer_size
的讨论在第7.1.8节,“服务器系统变量”。 -
MyISAM键缓存中的已使用块的数量。这是一个高水位标记,表示曾经在同一时间使用的块的最大数量。
-
从MyISAM键缓存中读取键块的请求次数。
-
从磁盘读取键块到MyISAM键缓存的物理读取次数。如果
Key_reads
很大,那么您的key_buffer_size
值可能太小。缓存miss率可以计算为Key_reads
和Key_read_requests
的比率。 -
将键块写入MyISAM键缓存的请求次数。
-
将键块从MyISAM键缓存写入磁盘的物理写入次数。
-
查询优化器计算的最后一个编译查询的总成本。这对于比较不同查询计划的成本非常有用。默认值为0,表示还没有编译查询。该变量具有会话范围。
该变量显示了查询的成本,包括多个查询块的成本,估算非缓存子查询的执行次数,并将查询块的成本乘以子查询执行次数。
-
查询优化器在执行计划构建中进行的迭代次数,以前的查询。
Last_query_partial_plans
具有会话范围。 -
连接到锁定的用户账户的尝试次数。关于账户锁定和解锁的信息,请见第8.2.20节,“账户锁定”。
-
超时执行的SELECT语句的数量。
-
设置超时执行的SELECT语句的数量。这包括包含非零超时的语句,以及包含非零超时的语句,但是在执行时超时的语句。
-
超时执行的SELECT语句的失败数量。
-
自服务器启动以来同时使用的最大连接数量。
-
自服务器启动以来连接数量达到最大值的时间。
-
该状态变量已弃用(因为延迟插入不支持);预计在将来的版本中删除。
-
当前MeCab全文搜索插件使用的字符集。有关相关信息,请见第14.9.9节,“MeCab全文搜索插件”。
-
Ongoing_anonymous_transaction_count
显示当前正在进行的匿名事务的数量。这可以确保没有更多的事务等待处理。
-
Ongoing_anonymous_gtid_violating_transaction_count
这个状态变量仅在调试版本中可用。显示使用
gtid_next=ANONYMOUS
的当前事务,并且违反GTID一致性。 -
Ongoing_automatic_gtid_violating_transaction_count
这个状态变量仅在调试版本中可用。显示使用
gtid_next=AUTOMATIC
的当前事务,并且违反GTID一致性。 -
当前打开的文件数量。这包括服务器打开的常规文件,不包括其他类型的文件,如套接字或管道。该计数不包括存储引擎使用自己的内部函数打开文件的文件。
-
当前打开的流数量(主要用于日志记录)。
-
当前缓存的表定义数量。
-
当前打开的表数量。
-
使用
my_open()
函数打开的文件数量。服务器部分使用其他函数打开文件,不会增加计数。 -
当前缓存的表定义数量。
-
当前打开的表数量。如果
Opened_tables
很大,可能是table_open_cache
值太小。 -
Performance_schema_
xxx
性能 Schema 状态变量在第29.16节,“性能 Schema 状态变量”中列出。这些变量提供了关于无法由于内存限制而无法加载或创建的 instrumentation 信息。
-
当前的预编译语句数量。 (最大语句数量由
max_prepared_stmt_count
系统变量指定。) -
服务器执行的语句数量。这变量包括在存储程序中执行的语句,除非
Questions
变量。它不计入COM_PING
或COM_STATISTICS
命令。本节开始的讨论说明如何将这个语句计数状态变量与其他变量相关联。
-
服务器执行的语句数量。这包括客户端向服务器发送的语句,但不包括在存储程序中执行的语句,除非
Queries
变量。这变量不计入COM_PING
、COM_STATISTICS
、COM_STMT_PREPARE
、COM_STMT_CLOSE
或COM_STMT_RESET
命令。本节开始的讨论说明如何将这个语句计数状态变量与其他变量相关联。
-
Replica_open_temp_tables
显示当前复制 SQL 线程打开的临时表数量。如果值大于零,不能安全地关闭复制服务器;见第19.5.1.31节,“复制和临时表”。这变量报告了所有复制通道的临时表总数。 -
指示资源组功能是否支持。
某些平台或 MySQL 服务器配置中,资源组不可用或有限制。特别是 Linux 系统可能需要手动步骤以实现某些安装方法。详见资源组限制。
-
半同步复制副本数量。
已弃用,同义词为
Rpl_semi_sync_source_clients
。 -
Rpl_semi_sync_master_net_avg_wait_time
-
Rpl_semi_sync_master_net_wait_time
已弃用,同义词为
Rpl_semi_sync_source_net_wait_time
。 -
Rpl_semi_sync_master_net_waits
源等待副本回复的总次数。
已弃用,同义词为
Rpl_semi_sync_source_net_waits
。 -
已弃用,同义词为
Rpl_semi_sync_source_no_times
。 -
已弃用,同义词为
Rpl_semi_sync_source_no_tx
。 -
已弃用,同义词为
Rpl_semi_sync_source_status
。 -
Rpl_semi_sync_master_timefunc_failures
-
Rpl_semi_sync_master_tx_avg_wait_time
已弃用的同义词,用于
Rpl_semi_sync_source_tx_avg_wait_time
. -
Rpl_semi_sync_master_tx_wait_time
已弃用的同义词,用于
Rpl_semi_sync_source_tx_wait_time
. -
已弃用的同义词,用于
Rpl_semi_sync_source_tx_waits
. -
Rpl_semi_sync_master_wait_pos_backtraverse
已弃用的同义词,用于
Rpl_semi_sync_source_wait_pos_backtraverse
. -
Rpl_semi_sync_master_wait_sessions
已弃用的同义词,用于
Rpl_semi_sync_source_wait_sessions
. -
已弃用的同义词,用于
Rpl_semi_sync_source_yes_tx
. -
半同步复制的副本数量。
在安装了
rpl_semi_sync_source
插件(semisync_source.so
库)在源服务器上时可用。 -
Rpl_semi_sync_source_net_avg_wait_time
源服务器等待副本回复的平均时间(微秒)。该变量始终为
0
,已弃用,预计将在未来版本中删除。在安装了
rpl_semi_sync_source
插件(semisync_source.so
库)在源服务器上时可用。 -
Rpl_semi_sync_source_net_wait_time
源服务器等待副本回复的总时间(微秒)。该变量始终为
0
,已弃用,预计将在未来版本中删除。当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
Rpl_semi_sync_source_net_waits
源服务器等待 replica 响应的总次数。
当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
源服务器关闭半同步复制的次数。
当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
未成功确认的提交次数。
当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
当前源服务器是否启用半同步复制。值为
ON
如果插件已启用且已确认提交,否则为OFF
如果插件未启用或源服务器已回退到异步复制由于提交确认超时。当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
Rpl_semi_sync_source_timefunc_failures
源服务器在调用时间函数,如
gettimeofday()
时失败的次数。当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
Rpl_semi_sync_source_tx_avg_wait_time
源服务器等待每个事务的平均时间(微秒)。
当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
Rpl_semi_sync_source_tx_wait_time
源服务器等待事务的总时间(微秒)。
当源服务器安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
源等待事务的总次数。
当源安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
Rpl_semi_sync_source_wait_pos_backtraverse
源等待事件的总次数,该事件的二进制坐标低于之前等待的事件。这可能发生在事务开始等待回复的顺序不同于事务的二进制日志事件写入顺序时。
当源安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
Rpl_semi_sync_source_wait_sessions
当前等待回复的会话数量。
当源安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
成功由副本确认的事务数量。
当源安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
半同步复制在副本上是否可用。该值为
ON
如果插件已启用且复制I/O(接收)线程正在运行,否则为OFF
。当源安装了
rpl_semi_sync_source
插件(semisync_source.so
库)时可用。 -
已弃用的
Rpl_semi_sync_replica_status
的同义词。 -
该变量的值是
sha256_password
身份验证插件用于RSA密钥对密码交换的公钥。该值仅在服务器成功初始化私钥和公钥在由sha256_password_private_key_path
和sha256_password_public_key_path
系统变量指定的文件中初始化时才是非空的。Rsa_public_key
的值来自后者文件。关于
sha256_password
,请参见第8.4.1.3节,“SHA-256 Pluggable Authentication”。 -
Secondary_engine_execution_count
HeatWave中的查询数量。
-
执行了表扫描的连接数量。如果该值不为0,您应该仔细检查表的索引。
-
执行了范围搜索的连接数量。
-
执行了范围搜索的连接数量。这通常不是一个严重的问题,即使该值很大。
-
执行了检查的连接数量。如果该值不为0,您应该仔细检查表的索引。
-
执行了全扫描的连接数量。
-
已弃用的别名,等同于
Replica_open_temp_tables
。 -
Slave_rows_last_search_algorithm_used
已弃用的别名,等同于
Replica_rows_last_search_algorithm_used
。 -
创建线程的数量,超过
slow_launch_time
秒。 -
执行时间超过
long_query_time
秒的查询数量。这 counter 不管是否启用慢查询日志。关于该日志的信息,请见第7.4.5节,“慢查询日志”。 -
排序算法需要的合并次数。如果该值很大,您可能需要增加
sort_buffer_size
系统变量的值。 -
使用范围进行排序的次数。
-
排序的行数。
-
通过扫描表进行排序的次数。
-
建立连接所需的重negotiate次数。
-
接受的SSL连接数量。
-
回调缓存命中次数。
-
当前加密算法(未加密连接为空)。
-
可能的SSL加密算法列表(非SSL连接为空)。如果MySQL支持TLSv1.3,该值包括可能的TLSv1.3加密套件。请见第8.3.2节,“加密连接TLS协议和加密套件”。
-
SSL连接尝试次数到SSL启用复制源服务器。
-
需要连接到SSL启用复制源服务器以建立连接的次数。
-
SSL上下文验证深度(验证证书链中的证书数量)。
-
SSL上下文验证模式。
-
默认SSL超时时间。
-
成功SSL连接到服务器的次数。
-
成功复制连接到SSL启用复制源服务器的次数。
-
SSL证书的最后有效日期。要检查SSL证书过期信息,请使用以下语句:
mysql> SHOW STATUS LIKE 'Ssl_server_not%'; +-----------------------+--------------------------+ | Variable_name | Value | +-----------------------+--------------------------+ | Ssl_server_not_after | Apr 28 14:16:39 2025 GMT | | Ssl_server_not_before | May 1 14:16:39 2015 GMT | +-----------------------+--------------------------+
-
SSL证书的首次有效日期。
-
SSL会话缓存命中次数。
-
SSL会话缓存miss次数。
-
SSL会话缓存模式。当
ssl_session_cache_mode
服务器变量的值为ON
时,Ssl_session_cache_mode
状态变量的值为SERVER
。 -
SSL会话缓存溢出次数。
-
SSL会话缓存大小。
-
SSL会话缓存超时值(以秒为单位)。
-
SSL会话缓存超时次数。
-
如果TLS未在当前MySQL会话中使用或TLS会话未被重用,则该值为0;否则,该值为1。
Ssl_sessions_reused
具有会话范围。 -
Ssl_used_session_cache_entries
已使用的SSL会话缓存条目数量。
-
复制SSL连接的验证深度。
-
服务器用于连接的验证模式。该值是位掩码;位在
openssl/ssl.h
头文件中定义:# define SSL_VERIFY_NONE 0x00 # define SSL_VERIFY_PEER 0x01 # define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 # define SSL_VERIFY_CLIENT_ONCE 0x04
SSL_VERIFY_PEER
表示服务器请求客户端证书。如果客户端提供证书,服务器将执行验证并在验证成功后继续。如果客户端未提供证书,服务器将继续执行。如果客户端提供证书,但证书无效,服务器将继续执行。 -
连接的SSL协议版本(例如,TLSv1)。如果连接未加密,该值为空。
-
可以立即授予表锁的次数。
-
不能立即授予表锁的次数,需要等待。如果该值高且您遇到性能问题,您应该首先优化查询,然后或将表或表分割或使用复制。
-
打开表缓存查找命中次数。
-
表开启缓存查找的miss次数。
-
表开启缓存溢出次数。这是指在打开或关闭表时,缓存实例有未使用的条目且缓存实例的大小大于
table_open_cache
/table_open_cache_instances
。 -
当mysqld作为事务协调器进行内部XA事务恢复时,用于内存映射日志的实现,这个变量表示自服务器启动以来使用的最大页面数。如果Tc_log_max_pages_used和
Tc_log_page_size
的乘积总是远小于日志大小,那么日志大小可能过大,可以减少大小。 (日志大小由--log-tc-size
选项设置。) -
用于内存映射XA恢复日志的页面大小。默认值由
getpagesize()
确定。这個变量在同样原因下被忽略,详见Tc_log_max_pages_used
。 -
用于内存映射恢复日志的实现,这个变量每次服务器无法提交事务并且需要等待日志中的空白页面时递增。如果这个值很大,你可能需要增加日志大小(使用
--log-tc-size
选项)。对于二进制日志恢复,这个变量每次二进制日志无法关闭,因为有多个阶段的事务进行中(关闭操作等待所有这些事务完成)。 -
是否支持服务器遥测指标。
更多信息,请见MySQL源代码文档中的Server telemetry metrics service部分。
-
显示当前已instrumented的会话数量。这可以在卸载Telemetry组件时很有用,以监控阻止卸载操作的会话数量。
更多信息,请见MySQL源代码文档中的Server telemetry traces service部分和Chapter 35, Telemetry。
-
是否支持服务器遥测追踪。
更多信息,请见MySQL源代码文档中的Server telemetry traces service部分。
-
线程缓存中的线程数量。
-
当前打开连接的数量。
-
用于处理连接的线程数量。如果
Threads_created
很大,您可能需要增加thread_cache_size
的值。缓存miss率可以计算为Threads_created
和Connections
的比率。 -
当前不睡眠的线程数量。
-
当前MySQL实例使用的OpenSSL库的运行版本。
-
当前会话使用的Server Name Indication(SNI),如果由客户端指定;否则为空。SNI是TLS协议的扩展(OpenSSL必须使用TLS扩展以使该状态变量生效)。MySQL对SNI的实现只代表客户端。
-
服务器已经运行的秒数。
-
自最近一次
FLUSH STATUS
语句以来经过的秒数。