服务器状态变量(SHOW GLOBAL STATUS;)
MySQL服务器维护许多状态变量,这些变量提供关于其操作的信息。可以使用SHOW [GLOBAL | SESSION] STATUS语句查看这些变量及其值。
可选的GLOBAL关键字聚合所有连接上的值,SESSION显示当前连接的值。
FLUSH STATUS会把许多状态值刷新为0;
1.Aborted_clients
由于客户端未正确关闭连接而终止的连接数。
如果客户机成功连接,但后来不正确的断开连接或终止连接,服务器将增加Aborted_clients状态变量,并将一条终止的连接消息记录到错误日志中。原因可以是以下任何一种:
1.退出之前,客户机程序没有调用mysql_close()。
2.客户端睡眠时间超过wait_timeout或interactive_timeout秒,而没有向服务器发出任何请求。
3.客户机程序在数据传输过程中突然终止。
4.关于终止连接或终止客户端问题的其他原因:
4.1:max_allowed_packet变量值太小,或者查询需要的内存超过为mysqld分配的内存。
4.2:以太网协议与Linux使用半双工和全双工。一些Linux以太网驱动程序有这个bug
4.3.线程库中导致读取中断的问题。
4.4.严重的TCP / IP配置。
4.5.有故障的以太网、集线器、开关、电缆等等。
2.Aborted_connects
连接MySQL服务器失败的次数
如果客户机甚至无法连接,服务器将增加aborted_connections状态变量。连接尝试失败的原因如下:
1.客户机试图访问数据库,但没有访问数据库的权限。
2.客户端使用不正确的密码。
3.连接包不包含正确的信息。
4.获取一个连接包需要的时间超过connect_timeout秒。
如果发生这种情况,可能表明有人试图闯入您的服务器!如果启用了通用查询日志,则将这些类型问题的消息记录到其中。
3.Binlog_cache_disk_use
使用临时二进制日志缓存但超过binlog_cache_size值并使用临时文件存储事务语句的事务数。
在Binlog_stmt_cache_disk_use状态变量中,可以单独跟踪导致将二进制日志事务缓存写入磁盘的非事务性语句的数量。
4.Acl_cache_items_count
缓存的特权对象的数量。每个对象都是用户及其活动角色的特权组合。
5.Binlog_cache_use
使用二进制日志缓存的事务数。
6.Binlog_stmt_cache_disk_use
使用二进制日志语句缓存但超过binlog_stmt_cache_size值并使用临时文件存储这些语句的非事务语句的数量。
7.Binlog_stmt_cache_use
使用二进制日志语句缓存的非事务性语句的数量。
8.Bytes_received
从所有客户机接收的字节数。
9. Bytes_sent
发送到所有客户机的字节数.
10.Caching_sha2_password_rsa_public_key
caching_sha2_password身份验证插件使用的公钥,用于基于RSA**对的密码交换。只有当服务器成功初始化caching_sha2_password_private_key_path和caching_sha2_password_public_key_path系统变量命名的文件中的私钥和公钥时,该值才为非空。Caching_sha2_password_rsa_public_key的值来自后一个文件。
11.Com_xxx
Com_xxx语句计数器变量表示每个xxx语句执行的次数。每种类型的语句都有一个状态变量。例如,Com_delete和Com_update分别计算DELETE和UPDATE语句。Com_delete_multi和Com_update_multi类似,但适用于使用多表语法的DELETE和UPDATE语句。
所有的Com_stmt_xxx变量都会被增加,即使准备好的语句参数未知或者执行过程中发生了错误。换句话说,它们的值对应于发出的请求数量,而不是成功完成的请求数量。
Com_stmt_xxx状态变量如下:
Com_stmt_prepare
Com_stmt_execute
Com_stmt_fetch
Com_stmt_send_long_data
Com_stmt_reset
Com_stmt_close
这些变量代表准备好的语句命令。它们的名称引用网络层中使用的COM_xxx命令集。换句话说,每当执行mysql_stmt_prepare()、mysql_stmt_execute()等准备好的语句API调用时,它们的值都会增加。但是,对于PREPARE、EXECUTE或DEALLOCATE PREPARE, Com_stmt_prepare、Com_stmt_execute和Com_stmt_close也会分别增加。此外,较老的语句计数器变量Com_prepare_sql、Com_execute_sql和Com_dealloc_sql的值会因准备、执行和DEALLOCATE准备语句而增加。Com_stmt_fetch表示从游标获取数据时发出的网络往返总次数。
Com_stmt_reprepare表示在语句引用的表或视图的元数据发生更改后,服务器自动重新准备语句的次数。reprepare操作递增Com_stmt_reprepare和Com_stmt_prepare。
Com_explain_other表示执行连接语句的EXPLAIN数量。参见8.8.4节,“获取指定连接的执行计划信息”。
Com_change_repl_filter表示执行的更改复制筛选器语句的数量。
12.Compression
客户端连接是否在客户端/服务器协议中使用压缩。
13.Connection_errors_xxx
这些变量提供关于客户机连接过程中发生的错误的信息。它们仅是全局的,并且表示跨所有主机连接聚合的错误计数。这些变量跟踪主机缓存没有解释的错误,例如与TCP连接无关的错误,这些错误在连接过程的早期发生(甚至在已知IP地址之前),或者不特定于任何特定的IP地址(例如内存不足的情况)。
Connection_errors_accept
在侦听端口上调用accept()期间发生的错误数量。
Connection_errors_internal
由于服务器内部错误(如未能启动新线程或内存不足)而拒绝连接的数量。
Connection_errors_max_connections
由于达到服务器max_connections限制而拒绝连接的数量。
Connection_errors_peer_address
在搜索连接客户端IP地址时发生的错误数。
Connection_errors_select
调用侦听端口上的select()或poll()时发生的错误数量。(此操作失败并不一定意味着客户机连接被拒绝。)
Connection_errors_tcpwrap
libwrap库拒绝的连接数。
14.Connections
连接MySQL服务器的尝试次数(成功与否)。
15.Created_tmp_disk_tables
服务器在执行语句时创建的内部磁盘上临时表的数量。
如果内部临时表最初是作为内存表创建的,但是变得太大,MySQL会自动将其转换为磁盘表。内存中临时表的最大大小是tmp_table_size和max_heap_table_size值的最小值。如果Created_tmp_disk_tables很大,您可能希望增加tmp_table_size或max_heap_table_size值,以减少内存中的内部临时表被转换为磁盘表的可能性。
通过比较Created_tmp_disk_tables和Created_tmp_tables变量的值,可以将创建的内部磁盘上临时表的数量与创建的内部临时表的总数进行比较。
16.Created_tmp_files
mysqld创建了多少临时文件。
17.Created_tmp_tables
服务器在执行语句时创建的内部临时表的数量。
通过比较Created_tmp_disk_tables和Created_tmp_tables变量的值,可以将创建的内部磁盘上临时表的数量与创建的内部临时表的总数进行比较。
SHOW STATUS语句的每次调用都使用一个内部临时表,并递增全局Created_tmp_tables值。
18.Current_tls_ca
服务器用于新连接的SSL上下文中活动的ssl_ca值。如果更改了系统变量,则此上下文值可能与当前ssl_ca系统变量值不同,但是随后没有执行ALTER INSTANCE RELOAD TLS来从上下文相关的系统变量值重新配置SSL上下文并更新相应的状态变量。(这种值上的电位差适用于每一对与上下文相关的系统和状态变量。有关加密连接,请参阅服务器端运行时配置。)
这个变量是在MySQL 8.0.16中添加的。
variable和status的对照:
具有受信任SSL证书颁发机构列表的文件的路径。
19.Current_tls_capath
服务器用于新连接的SSL上下文中活动的ssl_capath值。
包含PEM格式可信SSL CA证书的目录的路径。
这个变量是在MySQL 8.0.16中添加的。
20.Current_tls_cert
服务器用于新连接的SSL上下文中活动的ssl_cert值。
用于建立安全连接的SSL证书文件的名称。
这个变量是在MySQL 8.0.16中添加的。
21.Current_tls_cipher
服务器用于新连接的SSL上下文中活动的ssl_cipher 值。
用于SSL加密的允许密码的列表。
这个变量是在MySQL 8.0.16中添加的。
22.Current_tls_ciphersuites
服务器用于新连接的SSL上下文中活动的 tls_ciphersuites 值。
哪些TLSv1.3密文套件服务器允许加密连接。该值是由一个或多个冒号分隔的密码套件名称组成的列表。可以为该变量命名的密码套件依赖于用于编译MySQL的SSL库。
这个变量是在MySQL 8.0.16中添加的。
23.Current_tls_crl
服务器用于新连接的SSL上下文中活动的ssl_crl 值。
包含PEM格式证书撤销列表的文件的路径。对撤销列表功能的支持取决于用于编译MySQL的SSL库。
这个变量是在MySQL 8.0.16中添加的。
24.Current_tls_crlpath
服务器用于新连接的SSL上下文中活动的ssl_crlpath值。
包含包含PEM格式证书撤销列表的文件的目录的路径。对撤销列表功能的支持取决于用于编译MySQL的SSL库。
这个变量是在MySQL 8.0.16中添加的。
25.Current_tls_key
服务器用于新连接的SSL上下文中活动的ssl_key 值。
用于建立安全连接的SSL**文件的名称。
这个变量是在MySQL 8.0.16中添加的。
26.Current_tls_version
服务器用于新连接的SSL上下文中活动的tls_version 值。
服务器允许哪些协议用于加密连接。该值是由一个或多个逗号分隔的协议名组成的列表。可以为该变量命名的协议依赖于用于编译MySQL的SSL库。
这个变量是在MySQL 8.0.16中添加的。
27.Delayed_errors
不推荐使用此状态变量(因为不支持延迟插入),并将在将来的版本中删除。
28.Delayed_insert_threads
不推荐使用此状态变量(因为不支持延迟插入),并将在将来的版本中删除。
29.Delayed_writes
不推荐使用此状态变量(因为不支持延迟插入),并将在将来的版本中删除。
30.dragnet.Status
最近一次分配给 dragnet.log_error_filter_rules系统变量的结果,如果没有发生此类分配,则为空。
这个变量是在MySQL 8.0.12中添加的。
31.Flush_commands
服务器刷新表的次数,无论是由于用户执行了 FLUSH TABLES语句,还是由于内部服务器操作。它还通过接收“COM_REFRESH”包而增加。这与“Com_flush”相反,“Com_flush”表明执行了多少“FLUSH”语句,无论是执行“FLUSH TABLES”、“FLUSH LOGS”等等。
32.group_replication_primary_member
在组以单主模式运行时显示主成员的UUID。如果组在多主模式下运行,则显示空字符串。
group_replication_primary_member状态变量已经被弃用,计划在将来的版本中删除。
33.Handler_commit
内部“commit”语句的数量。
34.Handler_delete
从表中删除行的次数。
35.Handler_external_lock
服务器每次调用external_lock()函数都会增加这个变量,该函数通常在访问表实例的开始和结束时执行。存储引擎之间可能存在差异。这个变量可以被使用,例如,发现一份声明中,访问一个分区表有多少分区修剪之前锁定发生:检查语句的计数器增加多少,减去2(2要求表本身),然后除以2得到分区锁的数量。
36.Handler_mrr_init
服务器使用存储引擎自己的多范围读取实现进行表访问的次数。
37.Handler_prepare
用于两阶段提交操作的准备阶段的计数器。
38.Handler_read_first
读取索引中第一个条目的次数。如果这个值很高,则表明服务器正在执行大量的全索引扫描
39.Handler_read_key
根据键读取一行的请求数。如果这个值很高,那么很好地说明您的表已经为查询正确地建立了索引。
40.Handler_read_last
读取索引中最后一个键的请求数。使用ORDER BY,服务器将发出一个first-key请求,后面跟着几个next-key请求,而使用ORDER BY DESC,服务器将发出一个last-key请求,后面跟着几个previous-key请求。
41.Handler_read_next
按键顺序读取下一行的请求数。如果正在查询具有范围约束的索引列,或者正在执行索引扫描,则此值将递增。
42.Handler_read_prev
按键顺序读取前一行的请求数。该读方法主要是用于优化 ORDER BY … DESC.。
43.Handler_read_rnd
基于固定位置读取一行的请求数。如果您正在执行大量需要对结果排序的查询,则此值会很高。可能有很多查询需要MySQL扫描整个表,或者有一些连接没有正确使用键。
44.Handler_read_rnd_next
读取数据文件中下一行的请求数。如果要执行大量的表扫描,则此值会很高。一般来说,这意味着您的表没有被正确地索引,或者您的查询没有被编写来利用您拥有的索引。
45.Handler_rollback
存储引擎执行回滚操作的请求数。
46.Handler_savepoint
存储引擎放置保存点的请求数。
47.Handler_savepoint_rollback
存储引擎回滚到保存点的请求数。
48.Handler_update
更新表中某一行的请求数。
49.Handler_write
在表中插入一行的请求数。
50.Innodb_available_undo_logs
Innodb_available_undo_logs在MySQL 8.0.2中被删除。每个表空间中可用的回滚段数可以使用显示变量“innodb_rollback_segments”来检索;
51.Innodb_buffer_pool_dump_status
通过设置innodb_buffer_pool_dump_at_shutdown或innodb_buffer_pool_dump_now触发的记录InnoDB缓冲池中保存的页面的操作的进程。
52.Innodb_buffer_pool_load_status
通过读取与早期时间点对应的一组页面来预热InnoDB缓冲池的操作的进程,该操作由innodb_buffer_pool_load_at_startup或innodb_buffer_pool_load_now的设置触发。如果操作引入太多开销,可以通过设置innodb_buffer_pool_load_abort来取消它。
53.Innodb_buffer_pool_bytes_data
包含数据的InnoDB缓冲池中的总字节数。这个数字包括脏的和干净的页面。为了当压缩表导致缓冲池容纳不同大小的页面时获得比Innodb_buffer_pool_pages_data更精确的内存使用计算。
54.Innodb_buffer_pool_pages_data
包含数据的InnoDB缓冲池中的页数。这个数字包括脏的和干净的页面。使用压缩表时,报告的Innodb_buffer_pool_pages_data值可能大于Innodb_buffer_pool_pages_total (Bug #59550)。
55.Innodb_buffer_pool_bytes_dirty
InnoDB缓冲池中脏页中所包含的总当前字节数。为了当压缩表导致缓冲池容纳不同大小的页面时获得比Innodb_buffer_pool_pages_dirty更精确的内存使用计算 。
56.Innodb_buffer_pool_pages_dirty
InnoDB缓冲池中脏页的当前数量。
57.Innodb_buffer_pool_pages_flushed
从InnoDB缓冲池刷新页面的请求数。
58.Innodb_buffer_pool_pages_free
InnoDB缓冲池中空闲页面的数量。
59.Innodb_buffer_pool_pages_latched
InnoDB缓冲池中锁定页面的数量。这些页面当前正在读取或写入,或者由于其他原因无法刷新或删除。这个变量的计算非常昂贵,因此只有在服务器构建时定义UNIV_DEBUG系统时才能使用它。
60.Innodb_buffer_pool_pages_misc
InnoDB缓冲池中繁忙的页面数量,因为它们被分配给了管理开销,比如行锁或自适应哈希索引。这个值也可以计算为Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data。当使用压缩表时,Innodb_buffer_pool_pages_misc可能会报告一个越界值(Bug #59550)。
61.Innodb_buffer_pool_pages_total
InnoDB缓冲池的总大小,以页为单位。使用压缩表时,报告的Innodb_buffer_pool_pages_data值可能大于Innodb_buffer_pool_pages_total (Bug #59550)
62.Innodb_buffer_pool_read_ahead
预读后台线程读入InnoDB缓冲池的页面数。
63.Innodb_buffer_pool_read_ahead_evicted
预先读取的后台线程读入InnoDB缓冲池的页面数量,这些页面随后在没有被查询访问的情况下被删除。
64.Innodb_buffer_pool_read_ahead_rnd
由InnoDB发起的“随机”读头数。当查询以随机顺序扫描表的大部分时,就会发生这种情况。
65.Innodb_buffer_pool_read_requests
逻辑读请求的数量。
66.Innodb_buffer_pool_reads
InnoDB不能满足缓冲池逻辑读取的数量,必须直接从磁盘读取。
67.Innodb_buffer_pool_resize_status
动态调整InnoDB缓冲池大小的操作的状态,通过动态设置innodb_buffer_pool_size参数触发。innodb_buffer_pool_size参数是动态的,它允许您在不重启服务器的情况下调整缓冲池的大小
68.Innodb_buffer_pool_wait_free
通常,对InnoDB缓冲池的写入发生在后台。当InnoDB需要读取或创建一个页面,而没有可用的干净页面时,InnoDB会先刷新一些脏页面,然后等待该操作完成。此计数器计数这些等待的实例。如果innodb_buffer_pool_size设置正确,那么这个值应该很小。
69.Innodb_buffer_pool_write_requests
写入InnoDB缓冲池的次数。
70.Innodb_data_fsyncs
到目前为止,fsync()操作的数量。fsync()调用的频率受到innodb_flush_method配置选项的设置的影响。
71.Innodb_data_pending_fsyncs
当前挂起的fsync()操作的数目。fsync()调用的频率受到innodb_flush_method配置选项的设置的影响。
72.Innodb_data_pending_reads
当前挂起的读取数。
73.Innodb_data_pending_writes
当前挂起的写入数。
74.Innodb_data_read
自服务器启动以来读取的数据量(以字节为单位)。
75.Innodb_data_reads
数据读取的总数(OS文件读取)。
76.Innodb_data_writes
写入数据的总数。
77.Innodb_data_written
到目前为止写入的数据量,以字节为单位。
78.Innodb_dblwr_pages_written
已写入双写缓冲区的页数
79.Innodb_dblwr_writes
已执行的双写操作的数量
80.Innodb_have_atomic_builtins
指示服务器是否使用原子指令构建。
81.Innodb_log_waits
日志缓冲区太小且需要等待时间才能刷新的次数。
82.Innodb_log_write_requests
InnoDB重做日志的写请求数。
83.Innodb_log_writes
物理写入InnoDB重做日志文件的次数。
84.Innodb_num_open_files
InnoDB当前打开的文件数量。
85.Innodb_os_log_fsyncs
fsync()写入InnoDB重做日志文件的次数。
86.Innodb_os_log_pending_fsyncs
InnoDB重做日志文件的暂挂fsync()操作的数量。
87.Innodb_os_log_pending_writes
对InnoDB重做日志文件的挂起写入数。
88.Innodb_os_log_written
写入InnoDB重做日志文件的字节数。
89.Innodb_page_size
InnoDB页面大小(默认16KB)。许多值以页计算;页面大小使它们能够很容易地转换为字节。
90.Innodb_pages_created
操作在InnoDB表上创建的页面数。
91.Innodb_pages_read
通过对InnoDB表的操作从InnoDB缓冲池中读取的页面数。
92.Innodb_pages_written
操作在InnoDB表上写的页数。
93.Innodb_row_lock_current_waits
InnoDB表上的操作当前等待的行锁的数量。
94.Innodb_row_lock_time
为InnoDB表获取行锁花费的总时间(以毫秒为单位)。
95.Innodb_row_lock_time_avg
为InnoDB表获取行锁的平均时间(以毫秒为单位)。
96.Innodb_row_lock_time_max
为InnoDB表获取行锁的最长时间(以毫秒为单位)。
97.Innodb_row_lock_waits
InnoDB表上的操作必须等待行锁的次数。
98.Innodb_rows_deleted
从InnoDB表中删除的行数。
99.Innodb_rows_inserted
插入到InnoDB表中的行数。
100.Innodb_rows_read
从InnoDB表中读取的行数。
101.Innodb_rows_updated
InnoDB表中更新的行数。
102.Innodb_truncated_status_writes
SHOW ENGINE INNODB STATUS被截断的次数
103.Key_blocks_not_flushed
MyISAM**缓存中已更改但尚未刷新到磁盘的**块的数量。
104.Key_blocks_unused
MyISAM**缓存中未使用的块的数量。可以使用此值确定使用了多少**缓存
105.Key_blocks_used
MyISAM键缓存中使用的块数。这个值是一个高水位标记,表示曾经在一次使用过的最大块数。
106.Key_read_requests
从MyISAM**缓存读取**块的请求数。
107.Key_reads
**块从磁盘到MyISAM**缓存的物理读取次数。如果Key_reads很大,那么key_buffer_size值可能太小。缓存丢失率可以计算为Key_reads/Key_read_requests。
108.Key_write_requests
向MyISAM**缓存写入**块的请求数。
109.Key_writes
从MyISAM**缓存到磁盘的**块的物理写入数。
110.Last_query_cost
查询优化器计算的最后一个编译查询的总成本。这对于比较相同查询的不同查询计划的成本非常有用。默认值0表示还没有编译任何查询。默认值为0。Last_query_cost具有会话范围。
在MySQL 8.0.16及更高版本中,这个变量显示了具有多个查询块的查询的成本,计算每个查询块的成本估计,估计执行不可缓存子查询的次数,并将这些查询块的成本乘以子查询执行的次数。(Bug #92766, Bug #28786951)在MySQL 8.0.16之前,Last_query_cost只对简单的“扁平”查询进行了精确计算,而对包含子查询或联合的复杂查询则没有计算。(对于后者,值设置为0。)
111.Last_query_partial_plans
查询优化器在前一个查询的执行计划构造中进行的迭代次数。Last_query_cost具有会话范围。
112.Locked_connects
试图连接到锁定的用户帐户的次数。
113.Max_execution_time_exceeded
超过执行超时的SELECT语句的数量。
114.Max_execution_time_set
设置非零执行超时的SELECT语句的数量。这包括包含非零MAX_EXECUTION_TIME优化器提示的语句,以及不包含此类提示但在MAX_EXECUTION_TIME系统变量指示的超时为非零时执行的语句。
115.Max_execution_time_set_failed
试图设置执行超时失败的SELECT语句的数目。
116.Max_used_connections
自服务器启动以来同时使用的最大连接数。
117.Max_used_connections_time
Max_used_connections达到其当前值的时间。
118.Not_flushed_delayed_rows
不推荐使用此状态变量(因为不支持延迟插入),并将在将来的版本中删除。
119.mecab_charset
MeCab全文本解析器插件当前使用的字符集
120.Ongoing_anonymous_transaction_count
显示被标记为匿名的正在进行的事务的数量。这可以用来确保没有其他事务等待处理
121.Ongoing_anonymous_gtid_violating_transaction_count
此状态变量仅在调试构建中可用。显示使用gtid_next=“ANONYMOUS”且违反GTID一致性的正在进行的事务的数量。
122.Ongoing_automatic_gtid_violating_transaction_count
此状态变量仅在调试构建中可用。显示使用gtid_next=AUTOMATIC且违反GTID一致性的正在进行的事务的数量。
123.Open_files
打开的文件的数量。这个计数包括服务器打开的常规文件。它不包括其他类型的文件,如套接字或管道。此外,该计数不包括存储引擎使用自己的内部函数打开的文件,而不是要求服务器级别这样做。
124.Open_streams
打开的流的数量(主要用于日志记录)。
125.Open_table_definitions
缓存表定义的数目。
126.Open_tables
打开的表的数量。
127.Opened_files
使用my_open() (mysys库函数)打开的文件数量。服务器中不使用此函数打开文件的部分不会增加计数。
128.Opened_table_definitions
已缓存的表定义的数目。
129.Opened_tables
已打开的表的数量。如果Opened_tables很大,那么table_open_cache值可能太小。
130.Performance_schema_xxx
131.Prepared_stmt_count
当前准备报表的数量。(语句的最大数量由max_prepared_stmt_count系统变量给出。)
132.Qcache_free_blocks
在MySQL 8.0.3中删除了这个状态变量。
133.Qcache_free_memory
在MySQL 8.0.3中删除了这个状态变量。
134.Qcache_hits
在MySQL 8.0.3中删除了这个状态变量。
135.Qcache_inserts
在MySQL 8.0.3中删除了这个状态变量。
136.Qcache_lowmem_prunes
在MySQL 8.0.3中删除了这个状态变量。
137.Qcache_not_cached
在MySQL 8.0.3中删除了这个状态变量。
138.Qcache_queries_in_cache
在MySQL 8.0.3中删除了这个状态变量。
139.Qcache_total_blocks
在MySQL 8.0.3中删除了这个状态变量。
140.Queries
服务器执行的语句数。与Questions变量不同,这个变量包含在存储程序中执行的语句。它不计算COM_PING或COM_STATISTICS命令。
141.Questions
服务器执行的语句数。这只包括客户端发送到服务器的语句,而不像查询变量那样在存储程序中执行语句。该变量不计算COM_PING、COM_STATISTICS、COM_STMT_PREPARE、COM_STMT_CLOSE或COM_STMT_RESET命令。
142.Rpl_semi_sync_master_clients
半同步复制从库的数量。
此变量仅在安装主端半同步复制插件时可用。
143.Rpl_semi_sync_master_net_avg_wait_time
主服务器等待从服务器应答的平均时间(以微秒为单位)。该变量始终为0,已被弃用,将在将来的版本中删除。
此变量仅在安装主端半同步复制插件时可用。
144.Rpl_semi_sync_master_net_wait_time
主进程等待从进程响应的总时间(以微秒为单位)。该变量始终为0,已被弃用,将在将来的版本中删除。
此变量仅在安装主端半同步复制插件时可用。
145.Rpl_semi_sync_master_net_waits
主进程等待从进程响应的总次数。
此变量仅在安装主端半同步复制插件时可用。
146.Rpl_semi_sync_master_no_times
主进程关闭半同步复制的次数。
此变量仅在安装主端半同步复制插件时可用。
147.Rpl_semi_sync_master_no_tx
slave没有成功确认的提交数量。
此变量仅在安装主端半同步复制插件时可用。
148.Rpl_semi_sync_master_status
当前是否在主服务器上运行半同步复制。如果插件已启用且已发生提交确认,则该值为ON。如果插件未启用,或者由于提交确认超时,主服务器退回到异步复制,则为OFF。
此变量仅在安装主端半同步复制插件时可用。
149.Rpl_semi_sync_master_timefunc_failures
调用gettimeofday()等时间函数时,master失败的次数。
此变量仅在安装主端半同步复制插件时可用。
150.Rpl_semi_sync_master_tx_avg_wait_time
master等待每个事务的平均时间(以微秒为单位)。
此变量仅在安装主端半同步复制插件时可用。
151.Rpl_semi_sync_master_tx_wait_time
“master”等待事务的总时间(以微秒为单位)。
此变量仅在安装主端半同步复制插件时可用。
152.Rpl_semi_sync_master_tx_waits
“master”等待事务的总次数。
此变量仅在安装主端半同步复制插件时可用。
153.Rpl_semi_sync_master_wait_pos_backtraverse
“master”等待二进制坐标比先前等待的事件低的事件的总次数。当事务开始等待响应的顺序与二进制日志事件的写入顺序不同时,就会发生这种情况。
此变量仅在安装主端半同步复制插件时可用。
154.Rpl_semi_sync_master_wait_sessions
当前等待从服务器应答的会话数。
此变量仅在安装主端半同步复制插件时可用。
155.Rpl_semi_sync_master_yes_tx
从服务器成功确认的提交数。
此变量仅在安装主端半同步复制插件时可用。
156.Rpl_semi_sync_slave_status
半同步复制目前是否在从服务器上运行。如果插件已启用,并且从I/O线程正在运行,则打开,否则关闭。
此变量仅在安装主端半同步复制插件时可用。
157.Rsa_public_key
如果MySQL是使用OpenSSL编译的,那么这个变量是可用的。它的值是sha256_password身份验证插件使用的公钥,用于基于RSA**对的密码交换。只有当服务器成功初始化sha256_password_private_key_path和sha256_password_public_key_path系统变量命名的文件中的私钥和公钥时,该值才是非空的。Rsa_public_key的值来自后一个文件。
158.Secondary_engine_execution_count
以备将来使用。这个变量是在MySQL 8.0.13中添加的。
159.Select_full_join
执行表扫描的连接数,因为它们不使用索引。如果该值不为0,则应仔细检查表的索引。
160.Select_full_range_join
在引用表上使用范围搜索的联接数。
161.Select_range
在第一个表上使用范围的连接数。即使值非常大,这通常也不是一个关键问题。
162.Select_range_check
没有键的连接数,用于检查每一行之后的键使用情况。如果这不是0,您应该仔细检查表的索引。
163.Select_scan
对第一个表进行完整扫描的连接数。
164.Slave_heartbeat_period
这个变量已经过时,在MySQL 8.0.1中被删除。相反,使用replication_connection_configuration表的HEARTBEAT_INTERVAL列。
165.Slave_last_heartbeat
这个变量已经过时,在MySQL 8.0.1中被删除。相反,使用replication_connection_status表的LAST_HEARTBEAT_TIMESTAMP列。
166.Slave_open_temp_tables
从SQL线程当前打开的临时表的数量。如果值大于零,则关闭从服务器是不安全的
167.Slave_received_heartbeats
这个变量已经过时,在MySQL 8.0.1中被删除。相反,使用replication_connection_status表的COUNT_RECEIVED_HEARTBEATS列。
168.Slave_retried_transactions
这个变量已经过时,在MySQL 8.0.1中被删除。相反,使用replication_applier_status 表的 COUNT_TRANSACTIONS_RETRIES列。
169.Slave_rows_last_search_algorithm_used
这个“从库”最近使用的搜索算法用于定位基于行的复制的行。结果显示“从库”是否使用索引、表扫描或散列作为在任何通道上执行的最后一个事务的搜索算法。
使用的方法取决于slave_rows_search_algorithms系统变量的设置,以及相关表上可用的键。
此变量仅适用于MySQL的调试构建。
170.Slave_running
这个变量已经过时,在MySQL 8.0.1中被删除。相反,使用replication_connection_status和replication_applier_status表的SERVICE_STATE列。
171.Slow_launch_threads
花费超过slow_launch_time秒创建的线程数。
172.Slow_queries
花费超过long_query_time秒的查询数量。无论是否启用慢速查询日志,此计数器都会递增。
173.Sort_merge_passes
排序算法必须完成的合并遍历数。如果这个值很大,您应该考虑增加sort_buffer_size系统变量的值。
174.Sort_range
使用范围完成的排序数。
175.Sort_rows
已排序行数。
176.Sort_scan
通过扫描表完成的排序数。
177.Ssl_accept_renegotiates
建立连接所需的协商数。
178.Ssl_accepts
接受SSL连接的数量。
179.Ssl_callback_cache_hits
回调缓存命中的次数。
180.Ssl_cipher
当前加密密码(未加密连接为空)。
181.Ssl_cipher_list
可能的SSL密码列表(非SSL连接为空)。如果MySQL支持TLSv1.3,则该值包括可能的TLSv1.3加密套件。
182.Ssl_client_connects
SSL连接尝试到启用SSL的主服务器的数量。
183.Ssl_connect_renegotiates
建立到启用ssl的主服务器的连接所需的协商数。
184.Ssl_ctx_verify_depth
SSL上下文验证深度(测试链中有多少证书)。
185.Ssl_ctx_verify_mode
SSL上下文验证模式。
186.Ssl_default_timeout
缺省SSL超时。
187.Ssl_finished_accepts
到服务器的SSL连接成功的数量。
188.Ssl_finished_connects
到启用ssl的主服务器的成功从连接的数量。
189.Ssl_server_not_after
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 |
±----------------------±-------------------------+
190.Ssl_server_not_before
SSL证书有效的第一个日期。
191.Ssl_session_cache_hits
SSL会话缓存命中的次数。
192.Ssl_session_cache_misses
SSL会话缓存丢失的数量。
193.Ssl_session_cache_mode
SSL会话缓存模式。
194.Ssl_session_cache_overflows
SSL会话缓存溢出的数量。
195.Ssl_session_cache_size
SSL会话缓存大小。
196.Ssl_session_cache_timeouts
SSL会话缓存超时的数目。
197.Ssl_sessions_reused
从缓存中重用了多少SSL连接。
198.Ssl_used_session_cache_entries
使用了多少SSL会话缓存项。
199.Ssl_verify_depth
复制SSL连接的验证深度。
200.Ssl_verify_mode
服务器为使用SSL的连接使用的验证模式。值是位掩码;位在openssl/ssl.h头文件中定义:
SSL_VERIFY_PEER指示服务器请求客户端证书。如果客户端提供了一个,则服务器执行验证,并且只有在验证成功时才继续执行。SSL_VERIFY_CLIENT_ONCE表示,对客户机证书的请求将只在初始握手时执行。
201.Ssl_version
连接的SSL协议版本(例如,TLSv1)。如果连接未加密,则值为空。
202.Table_locks_immediate
可以立即授予表锁请求的次数。
203.Table_locks_waited
无法立即授予表锁请求的次数,需要等待。如果这个值很高,并且存在性能问题,那么应该首先优化查询,然后拆分表或表,或者使用复制。
204.Table_open_cache_hits
打开表缓存查找的命中次数。
205.Table_open_cache_misses
打开表缓存查找失败的次数。
206.Table_open_cache_overflows
打开表缓存的溢出数。这是在打开或关闭表之后,缓存实例有一个未使用的条目,且实例的大小大于table_open_cache / table_open_cache_instances的次数。
207.Tc_log_max_pages_used
对于mysqld用作内部XA事务恢复事务协调器时使用的日志的内存映射实现,这个变量表示自服务器启动以来日志使用的最大页面数。如果Tc_log_max_pages_used和Tc_log_page_size的乘积总是明显小于日志大小,则该大小大于所需的大小,并且可以减少。(大小由——log-tc-size选项设置。此变量未被使用:它对于基于二进制日志的恢复是不需要的,并且除非能够进行两阶段提交且支持XA事务的存储引擎数量大于1,否则不会使用内存映射恢复日志方法。(InnoDB是唯一适用的引擎。)
208.Tc_log_page_size
用于XA恢复日志的内存映射实现的页面大小。默认值是使用getpagesize()确定的。此变量未使用的原因与Tc_log_max_pages_used中描述的相同。
209.Tc_log_page_waits
对于恢复日志的内存映射实现,每当服务器无法提交事务并不得不等待日志中的空闲页面时,该变量都会递增。如果这个值很大,您可能希望增加日志大小(使用——log-tc-size选项)。对于基于二进制日志的恢复,每次二进制日志不能关闭时,该变量都会递增,因为有两阶段提交正在进行中。(关闭操作将等待所有此类事务完成。)
210.Threads_cached
线程缓存中的线程数。
211.Threads_connected
当前打开连接的数量。
212.Threads_created
为处理连接而创建的线程数。如果Threads_created很大,您可能希望增加thread_cache_size值。缓存丢失率可以计算为Threads_created/Connections。
213.Threads_running
未休眠线程的数量。
214.Uptime
服务器已启动的秒数。
215.Uptime_since_flush_status
最近一次 FLUSH STATUS 语句后的秒数。