5.1.9 服务器状态变量

MySQL 服务器维护许多状态变量,这些状态变量提供有关其操作的信息。您可以使用SHOW [GLOBAL | SESSION] STATUS语句查看这些变量及其值(请参见第 13.7.5.35 节“ 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.

本节提供每个状态变量的描述。有关状态变量的摘要,请参见第 5.1.5 节“服务器状态变量参考”

状态变量的含义如下 table 所示。有关 NDB 群集特定状态变量的含义,请参见第 21.3.3.9.3 节“ NDB 群集状态变量”

由于 Client 端在未正确关闭连接的情况下死亡而中止的连接数。参见第 B.4.2.10 节,“通信错误和中止的连接”

连接到 MySQL 服务器的失败尝试次数。参见第 B.4.2.10 节,“通信错误和中止的连接”

有关与连接有关的其他信息,请检查Connection_errors_xxx状态变量和host_cachetable。

从 MySQL 5.7.3 开始,Aborted_connects在嵌入式服务器中不可见,因为对于该服务器而言,它未更新且没有意义。

使用临时二进制日志缓存但超过了binlog_cache_size的值并使用临时文件存储事务中的语句的事务数。

Binlog_stmt_cache_disk_use status 变量中分别跟踪了导致二进制日志事务高速缓存写入磁盘的非事务性语句的数量。

使用二进制日志缓存的事务数。

使用二进制日志语句高速缓存但超过了binlog_stmt_cache_size的值并使用临时文件存储这些语句的非事务语句的数量。

使用二进制日志语句高速缓存的非事务性语句的数量。

从所有 Client 端收到的字节数。

发送给所有 Client 端的字节数。

  • Com_xxx

Com_xxx语句计数器变量指示每个* xxx *语句已执行的次数。每种类型的语句都有一个状态变量。例如,Com_deleteCom_update分别计数DELETEUPDATE语句。 Com_delete_multiCom_update_multi相似,但适用于使用多 table 语法的DELETEUPDATE语句。

如果从查询缓存返回查询结果,则服务器会递增Qcache_hits状态变量,而不是Com_select。参见第 8.10.3.4 节“查询缓存状态和维护”

即使准备好的语句参数未知或执行期间发生错误,所有Com_stmt_xxx变量也会增加。换句话说,它们的值对应于发出的请求数,而不是成功完成的请求数。例如,由于状态变量是为每次服务器启动而初始化的,并且不会在重启后持续存在,因此跟踪SHUTDOWN语句的Com_shutdown变量通常具有零值,但是如果执行了SHUTDOWN语句但失败了,则该变量可以为非零。

Com_stmt_xxx状态变量如下:

  • Com_stmt_prepare

    • Com_stmt_execute

    • Com_stmt_fetch

    • Com_stmt_send_long_data

    • Com_stmt_reset

    • Com_stmt_close

这些变量代 table 准备好的语句命令。它们的名称指的是网络层中使用的COM_xxx命令集。换句话说,只要执行诸如 mysql_stmt_prepare() ,mysql_stmt_execute() 之类的预备语句 API 调用,它们的值就会增加。但是,Com_stmt_prepareCom_stmt_executeCom_stmt_close分别对于PREPAREEXECUTEDEALLOCATE PREPARE也增加。此外,较旧的语句计数器变量Com_prepare_sqlCom_execute_sqlCom_dealloc_sql的值对于PREPAREEXECUTEDEALLOCATE PREPARE语句增加。 Com_stmt_fetchtable 示从游标获取时发出的网络往返总数。

Com_stmt_repreparetable 示在元数据更改为语句所引用的 table 或视图之后,服务器自动重新准备语句的次数。重复操作将Com_stmt_reprepareCom_stmt_prepare递增。

Com_explain_othertable 示已执行的连接说明条语句的数量。参见第 8.8.4 节“获取命名连接的执行计划信息”

Com_change_repl_filtertable 示已执行的更改复制过滤器条语句的数量。

Client 端连接是否在 Client 端/服务器协议中使用压缩。

这些变量提供有关 Client 端连接过程中发生的错误的信息。它们仅是全局的,table 示跨所有主机的连接汇总的错误计数。这些变量跟踪主机缓存未解决的错误(请参阅第 5.1.11.2 节“ DNS 查找和主机缓存”),例如与 TCP 连接不相关的错误,在连接过程的早期(甚至在知道 IP 地址之前)发生的错误,或者不是特定于任何错误的错误。特定的 IP 地址(例如内存不足的情况)。

从 MySQL 5.7.3 开始,Connection_errors_xxx状态变量在嵌入式服务器中不可见,因为对于该服务器,它们未更新且没有意义。

在侦听端口上调用accept()期间发生的错误数。

由于服务器内部错误(例如无法启动新线程或内存不足情况)而被拒绝的连接数。

由于达到服务器max_connections限制,拒绝的连接数。

搜索连接 Client 端 IP 地址时发生的错误数。

在侦听端口上调用select()poll()时发生的错误数。 (此操作失败不一定 table 示 Client 端连接被拒绝.)

libwrap库拒绝的连接数。

与 MySQL 服务器的连接尝试次数(成功或失败)。

服务器在执行语句时创建的内部磁盘临时 table 的数量。

您可以将创建的内部磁盘临时 table 的数量与通过比较Created_tmp_disk_tablesCreated_tmp_tables值创建的内部临时 table 的总数进行比较。

另请参见第 8.4.4 节“ MySQL 中的内部临时 table 使用”

mysqld已创建多少个临时文件。

服务器在执行语句时创建的内部临时 table 的数量。

您可以将创建的内部磁盘临时 table 的数量与通过比较Created_tmp_disk_tablesCreated_tmp_tables值创建的内部临时 table 的总数进行比较。

另请参见第 8.4.4 节“ MySQL 中的内部临时 table 使用”

每次对SHOW STATUS语句的调用都使用一个内部临时 table,并增加全局Created_tmp_tables的值。

不建议使用此状态变量(因为不支持DELAYED插入),并将在以后的版本中将其删除。

不建议使用此状态变量(因为不支持DELAYED插入),并将在以后的版本中将其删除。

不建议使用此状态变量(因为不支持DELAYED插入),并将在以后的版本中将其删除。

服务器刷新 table 的次数,无论是由于用户执行了FLUSH TABLES语句还是由于内部服务器操作。它也通过接收COM_REFRESH数据包而增加。这与Com_flush相反,后者 table 示已执行了FLUSH条语句,是否是FLUSH TABLESFLUSH LOGS等。

当组以单主要模式运行时,显示主要成员的 UUID。如果组以多主要模式运行,则显示一个空字符串。

内部COMMIT语句的数量。

从 table 中删除行的次数。

服务器每次调用其external_lock()函数时都会将此变量递增,通常发生在访问 table 实例的开始和结束时。存储引擎之间可能会有差异。例如,可以使用此变量来发现访问分区 table 的语句在锁定发生之前修剪了多少个分区:检查该语句的计数器增加了多少,减去 2(对 table 本身进行 2 次调用),然后除以 2 得到锁定的分区数。

服务器使用存储引擎自己的多范围读取实现进行 table 访问的次数。

两阶段提交操作的准备阶段的计数器。

索引中第一个条目的读取次数。如果此值很高,则 table 明服务器正在执行很多全索引扫描(例如,SELECT col1 FROM foo,假设已对col1进行了索引)。

基于键读取行的请求数。如果此值很高,则 table 明您的 table 已为查询正确索引。

读取索引中最后一个键的请求数。使用ORDER BY,服务器将发出一个第一密钥请求,然后发出多个下一个密钥请求;而使用ORDER BY DESC,服务器将发出一个最后密钥的请求,然后发出多个先前的密钥请求。

按键 Sequences 读取下一行的请求数。如果要查询具有范围约束的索引列或进行索引扫描,则此值将增加。

按键 Sequences 读取上一行的请求数。此读取方法主要用于优化ORDER BY ... DESC

基于固定位置读取行的请求数。如果您要执行很多需要对结果进行排序的查询,则此值很高。您可能有很多查询需要 MySQL 扫描整个 table,或者您的联接未正确使用键。

读取数据文件下一行的请求数。如果要进行大量 table 扫描,则此值较高。通常,这 table 明您的 table 未正确构建索引,或者未编写查询来利用您拥有的索引。

存储引擎执行回滚操作的请求数。

存储引擎放置保存点的请求数。

存储引擎回滚到保存点的请求数。

更新 table 中一行的请求数。

在 table 中插入行的请求数。

Note

自 MySQL 5.7.19 起,不赞成使用Innodb_available_undo_logs状态变量,并将在以后的版本中将其删除。

可用的总数InnoDB rollback segments。补充innodb_rollback_segments系统变量,该变量定义了活动回滚段的数量。

一个回滚段始终驻留在系统 table 空间中,并且 32 个回滚段保留给临时 table 使用,并托管在临时 table 空间(ibtmp1)中。参见第 14.6.7 节“撤消日志”

如果您启动一个具有 32 个或更少回滚段的 MySQL 实例,则InnoDB仍将一个回滚段分配给系统 table 空间,并将 32 个回滚段分配给临时 table 空间。在这种情况下,即使实例是使用较小的innodb_rollback_segments值初始化的,Innodb_available_undo_logs也会报告 33 个可用的回滚段。

innodb_buffer_pool_dump_at_shutdowninnodb_buffer_pool_dump_now的设置触发的记录InnoDB buffer pool中保存的pages的操作的进度。

有关相关信息和示例,请参见第 14.8.3.6 节“保存和恢复缓冲池状态”

通过读入由innodb_buffer_pool_load_at_startupinnodb_buffer_pool_load_now设置触发的对应于较早时间点的pages集合,对InnoDB buffer pool warm up进行操作的进度。如果该操作导致过多的开销,则可以通过设置innodb_buffer_pool_load_abort来取消它。

有关相关信息和示例,请参见第 14.8.3.6 节“保存和恢复缓冲池状态”

InnoDB buffer pool中包含数据的字节总数。该数字包括dirty页和干净页。为获得比Innodb_buffer_pool_pages_data更准确的内存使用率计算,当compressedtable 导致缓冲池容纳不同大小的页面时。

InnoDB buffer pool中包含数据的pages的数量。该数字包括dirty和干净页面。使用compressed tables时,报告的Innodb_buffer_pool_pages_data值可能大于Innodb_buffer_pool_pages_total(错误#59550)。

InnoDB buffer pooldirty pages中保存的当前字节总数。为获得比Innodb_buffer_pool_pages_dirty更准确的内存使用率计算,当compressedtable 导致缓冲池容纳不同大小的页面时。

InnoDB buffer pool中当前的dirty pages数量。

InnoDB buffer pool发送到flush pages的请求数。

InnoDB buffer pool中的免费pages数量。

InnoDB buffer pool中锁存的pages的数量。这些页面是当前正在读取或写入的页面,或者由于某些其他原因而不能被flushed或删除。此变量的计算成本很高,因此仅在服务器构建时定义了UNIV_DEBUG系统时才可用。

InnoDB buffer pool中繁忙的pages的数量,因为它们已分配给 Management 开销,例如row locks自适应哈希索引。此值也可以计算为Innodb_buffer_pool_pages_total-Innodb_buffer_pool_pages_free-Innodb_buffer_pool_pages_data。当使用compressed tables时,Innodb_buffer_pool_pages_misc可能会报告越界值(错误#59550)。

InnoDB buffer pool的总大小,以pagestable 示。使用compressed tables时,报告的Innodb_buffer_pool_pages_data值可能大于Innodb_buffer_pool_pages_total(错误#59550)

read-ahead后台线程读入InnoDB buffer poolpages的数量。

read-ahead后台线程读入InnoDB buffer poolpages数目,这些数目随后被evicted而不被查询访问。

InnoDB发起的“随机”预读次数。当查询以随机 Sequences 扫描 table 的大部分时,会发生这种情况。

逻辑读取请求的数量。

InnoDB无法满足buffer pool的逻辑读取次数,必须直接从磁盘读取。

通过动态设置innodb_buffer_pool_size参数触发的动态调整InnoDB buffer pool大小的操作的状态。 innodb_buffer_pool_size参数是动态的,它使您无需重新启动服务器即可调整缓冲池的大小。有关相关信息,请参见在线配置 InnoDB 缓冲池大小

通常,写入InnoDB buffer pool的操作在后台进行。当InnoDB需要读取或创建page并且没有可用的干净页面时,InnoDB首先刷新一些dirty pages并 await 该操作完成。此计数器计算这些 await 的次数。如果已正确设置innodb_buffer_pool_size,则此值应较小。

已写入InnoDB buffer pool的次数。

到目前为止的fsync()次操作。 fsync()呼叫的频率受innodb_flush_method配置选项的设置影响。

当前待处理的fsync()个操作。 fsync()呼叫的频率受innodb_flush_method配置选项的设置影响。

当前的未决读取数。

当前挂起的写入数。

自服务器启动以来读取的数据量(以字节为单位)。

读取的数据总数(读取 OS 文件)。

数据写入总数。

到目前为止已写入的数据量,以字节为单位。

已写入doublewrite bufferpages的数量。参见第 14.12.1 节“ InnoDB 磁盘 I/O”

已执行的双写操作数。参见第 14.12.1 节“ InnoDB 磁盘 I/O”

指示服务器是否使用atomic instructions构建。

log buffer太小且需要wait才能达到flushed的次数,然后才能 continue。

InnoDB redo log的写入请求数。

InnoDB redo log文件的物理写入次数。

文件InnoDB当前处于打开状态。

已完成对InnoDB redo log个文件的fsync()次写入。

InnoDB redo log个文件的暂挂fsync()个操作的数量。

暂挂写入InnoDB redo log文件的次数。

写入InnoDB redo log文件的字节数。

InnoDB页大小(默认 16KB)。页面中包含许多值;页面大小使它们可以轻松转换为字节。

通过对InnoDBtable 进行操作而创建的页面数。

通过对InnoDBtable 进行的操作从InnoDB缓冲池读取的页数。

通过操作对InnoDBtable 写入的页数。

InnoDBtable 上的操作当前正在 await 的row locks数量。

购买InnoDB个 table 中的row locks所花费的总时间(以毫秒为单位)。

获取InnoDB个 table 的row lock的平均时间(以毫秒为单位)。

获取InnoDB个 table 的row lock的最长时间(以毫秒为单位)。

InnoDBtable 进行的操作必须 awaitrow lock的次数。

InnoDB个 table 中删除的行数。

插入InnoDB个 table 的行数。

InnoDB个 table 读取的行数。

InnoDB个 table 中更新的行数。

SHOW ENGINE INNODB STATUS语句输出的次数已被截断。

MyISAM键高速缓存中已更改但尚未刷新到磁盘的键块数。

MyISAM键高速缓存中未使用的块数。您可以使用此值来确定正在使用多少键高速缓存。请参阅第 5.1.7 节“服务器系统变量”中有关key_buffer_size的讨论。

MyISAM键高速缓存中已使用的块数。此值是一个高水位线,指示一次曾经使用的最大块数。

MyISAM键高速缓存中读取键块的请求数。

从磁盘到MyISAM键高速缓存中的键块的物理读取数。如果Key_reads大,则您的key_buffer_size值可能太小。高速缓存未命中率可以计算为Key_reads/Key_read_requests

将密钥块写入MyISAM密钥高速缓存的请求数。

MyISAM键高速缓存到磁盘的键块的物理写入次数。

由查询优化器计算的最后编译查询的总成本。这对于比较同一查询的不同查询计划的成本非常有用。默认值为 0table 示尚未编译任何查询。默认值为 0.Last_query_cost具有会话作用域。

只能针对简单的“扁平”查询准确计算Last_query_cost,而对于包含子查询或UNION的复杂查询则无法准确计算。对于后者,该值设置为 0.

查询优化器在上一个查询的执行计划构建中进行的迭代次数。 Last_query_cost具有会话范围。

连接到锁定的用户帐户的尝试次数。有关帐户锁定和解锁的信息,请参阅第 6.2.15 节“锁定帐户”

超过了执行超时的SELECT条语句的数量。

设置了非零执行超时的SELECT条语句的数量。这包括包含非零MAX_EXECUTION_TIME优化器提示的语句,以及不包含此类提示但在max_execution_time系统变量指示的超时为非零时执行的语句。

尝试设置执行超时的SELECT条语句失败。

自服务器启动以来已同时使用的最大连接数。

Max_used_connections达到其当前值的时间。

不建议使用此状态变量(因为不支持DELAYED插入),并将在以后的版本中将其删除。

MeCab 全文分析器插件当前使用的字符集。有关相关信息,请参见第 12.9.9 节“ MeCab 全文分析器插件”

显示已标记为匿名的正在进行的事务数。这可以用来确保没有其他 Transaction 正在 await 处理。

此状态变量仅在调试版本中可用。显示使用gtid_next=ANONYMOUS并且违反 GTID 一致性的正在进行的事务数。

此状态变量仅在调试版本中可用。显示使用gtid_next=AUTOMATIC并且违反 GTID 一致性的正在进行的事务数。

打开的文件数。此计数包括服务器打开的常规文件。它不包括其他类型的文件,例如套接字或管道。此外,该计数不包括存储引擎使用其自身内部功能打开的文件,而不是要求服务器级别打开的文件。

打开的流数(主要用于记录)。

缓存的.frm个文件的数量。

打开的 table 数。

my_open()(mysys库函数)打开的文件数。不使用此功能打开文件的服务器部分不会增加计数。

已缓存的.frm个文件的数量。

已打开的 table 数。如果Opened_tables大,则您的table_open_cache值可能太小。

  • Performance_schema_xxx

性能模式状态变量在第 25.16 节“性能模式状态变量”中列出。这些变量提供有关由于内存限制而无法加载或创建的检测的信息。

当前准备好的语句数。 (最大语句数由max_prepared_stmt_count系统变量给定。)

查询缓存中的可用内存块数。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_free_blocks

查询缓存的可用内存量。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_free_memory

查询缓存命中数。

本节开头的讨论指出了如何将此语句计数状态变量与其他此类变量相关联。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_hits

添加到查询缓存中的查询数。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_inserts

由于内存不足而从查询缓存中删除的查询数。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_lowmem_prunes

非缓存查询的数量(不可缓存或由于query_cache_type设置而无法缓存)。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_not_cached

在查询缓存中注册的查询数。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_queries_in_cache

查询缓存中的块总数。

Note

从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括Qcache_total_blocks

服务器执行的语句数。与Questions变量不同,此变量包括在存储的程序中执行的语句。它不计算COM_PINGCOM_STATISTICS命令。

本节开头的讨论指出了如何将此语句计数状态变量与其他此类变量相关联。

服务器执行的语句数。与Queries变量不同,这仅包括 Client 端发送给服务器的语句,而不包括在存储的程序中执行的语句。此变量不计算COM_PINGCOM_STATISTICSCOM_STMT_PREPARECOM_STMT_CLOSECOM_STMT_RESET命令。

本节开头的讨论指出了如何将此语句计数状态变量与其他此类变量相关联。

半同步从站的数量。

仅当安装了主端半同步复制插件时,此变量才可用。

主机 await 从机应答的平均时间(以微秒为单位)。此变量已弃用,始终为0,并将在以后的版本中删除。

仅当安装了主端半同步复制插件时,此变量才可用。

主机 await 从机回复的总时间(以微秒为单位)。此变量已弃用,始终为0,并将在以后的版本中删除。

仅当安装了主端半同步复制插件时,此变量才可用。

主服务器 await 从属服务器答复的总次数。

仅当安装了主端半同步复制插件时,此变量才可用。

主服务器关闭半同步复制的次数。

仅当安装了主端半同步复制插件时,此变量才可用。

从站未成功确认的提交数。

仅当安装了主端半同步复制插件时,此变量才可用。

半同步复制当前是否可在主服务器上运行。如果已启用插件并且发生了提交确认,则值为ON。如果未启用该插件,或者主服务器由于提交确认超时而退回到异步复制,则为OFF

仅当安装了主端半同步复制插件时,此变量才可用。

调用诸如gettimeofday()之类的时间函数时,主站发生故障的次数。

仅当安装了主端半同步复制插件时,此变量才可用。

主服务器 await 每个事务的平均时间(以微秒为单位)。

仅当安装了主端半同步复制插件时,此变量才可用。

主服务器 await 事务的总时间(以微秒为单位)。

仅当安装了主端半同步复制插件时,此变量才可用。

主服务器 awaitTransaction 的总次数。

仅当安装了主端半同步复制插件时,此变量才可用。

主节点 await 事件的二进制坐标比之前 await 的事件低的总次数。当事务开始 await 答复的 Sequences 与写入其二进制日志事件的 Sequences 不同时,可能会发生这种情况。

仅当安装了主端半同步复制插件时,此变量才可用。

当前 await 从属答复的会话数。

仅当安装了主端半同步复制插件时,此变量才可用。

从站成功确认的提交数。

仅当安装了主端半同步复制插件时,此变量才可用。

半同步复制当前在从属服务器上是否可运行。如果已启用插件且从属 I/O 线程正在运行,则为ON,否则为OFF

仅当安装了从属端半同步复制插件时,此变量才可用。

如果 MySQL 是使用 OpenSSL 编译的,则此变量可用(请参见第 6.3.4 节“依赖于 SSL 库的功能”)。它的值是sha256_password身份验证插件用于基于 RSA 密钥对的密码交换所使用的公钥。仅当服务器成功初始化由sha256_password_private_key_pathsha256_password_public_key_path系统变量命名的文件中的私钥和公用密钥时,该值才为非空。 Rsa_public_key的值来自后一个文件。

有关sha256_password的信息,请参见第 6.4.1.5 节“ SHA-256 可插拔身份验证”

由于不使用索引而执行 table 扫描的联接数。如果该值不为 0,则应仔细检查 table 的索引。

在参考 table 上使用范围搜索的联接数。

在第一个 table 上使用范围的联接数。即使值很大,这通常也不是关键问题。

每行之后不检查键的键联接的连接数。如果不为 0,则应仔细检查 table 的索引。

完全扫描第一个 table 的联接数。

显示复制从属服务器上的复制心跳间隔(以秒为单位)。

此变量受show_compatibility_56系统变量的值影响。有关详细信息,请参见show_compatibility_56 对从站状态变量的影响

Note

此变量仅显示默认复制通道的状态。要监视任何复制通道,请将replication_connection_configurationtable 中的HEARTBEAT_INTERVAL列用于复制通道。 Slave_heartbeat_period已过时,将在以后的 MySQL 版本中删除。

显示复制从属服务器何时接收到最新的心跳 signal,为TIMESTAMP值。

此变量受show_compatibility_56系统变量的值影响。有关详细信息,请参见show_compatibility_56 对从站状态变量的影响

Note

此变量仅显示默认复制通道的状态。要监视任何复制通道,请将replication_connection_statustable 中的LAST_HEARTBEAT_TIMESTAMP列用于复制通道。 Slave_last_heartbeat已过时,将在以后的 MySQL 版本中删除。

从属 SQL 线程当前已打开的临时 table 数。如果该值大于零,则关闭从站是不安全的。参见第 16.4.1.29 节,“复制 table 和临时 table”。此变量报告“所有”复制通道的打开临时 table 的总数。

自从上次重新启动或重置从属服务器或发出更改为主语句以来,复制从属服务器收到的每个复制心跳都会使此计数器递增。

此变量受show_compatibility_56系统变量的值影响。有关详细信息,请参见show_compatibility_56 对从站状态变量的影响

Note

此变量仅显示默认复制通道的状态。要监视任何复制通道,请将replication_connection_statustable 中的COUNT_RECEIVED_HEARTBEATS列用于复制通道。 Slave_received_heartbeats已过时,将在以后的 MySQL 版本中删除。

自启动以来,复制从属 SQL 线程重试事务的总次数。

此变量受show_compatibility_56系统变量的值影响。有关详细信息,请参见show_compatibility_56 对从站状态变量的影响

Note

此变量仅显示默认复制通道的状态。要监视任何复制通道,请将replication_applier_statustable 中的COUNT_TRANSACTIONS_RETRIES列用于复制通道。 Slave_retried_transactions已过时,将在以后的 MySQL 版本中删除。

此从属服务器最近使用它来查找行以进行基于行的复制的搜索算法。结果显示从站是否使用索引,table 扫描或哈希作为在任何通道上执行的最后一个事务的搜索算法。

使用的方法取决于slave_rows_search_algorithms系统变量的设置以及相关 table 上可用的键。

此变量仅可用于 MySQL 的调试版本。

如果此服务器是连接到复制主机的复制从属服务器,并且 I/O 和 SQL 线程都在运行,则为ON;否则为OFF

此变量受show_compatibility_56系统变量的值影响。有关详细信息,请参见show_compatibility_56 对从站状态变量的影响

Note

此变量仅显示默认复制通道的状态。要监视任何复制通道,请使用复制通道的replication_applier_statusreplication_connection_statustable 中的SERVICE_STATE列。 Slave_running已过时,并将在将来的 MySQL 版本中删除。

创建所花费的时间超过slow_launch_time秒的线程数。

该变量在嵌入式服务器(libmysqld)中没有意义,从 MySQL 5.7.2 开始,在嵌入式服务器中不再可见。

耗时超过long_query_time秒的查询数。无论是否启用慢查询日志,此计数器都会递增。有关该日志的信息,请参见第 5.4.5 节“缓慢的查询日志”

排序算法必须执行的合并通过次数。如果该值较大,则应考虑增加sort_buffer_size系统变量的值。

使用范围完成的排序数量。

排序的行数。

通过扫描 table 完成的排序数。

构建连接所需的协商数量。

接受的 SSL 连接数。

回调缓存命中数。

当前的加密密码(对于未加密的连接为空)。

可能的 SSL 密码列 table(非 SSL 连接为空)。

与启用了 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 会话高速缓存未命中数。

SSL 会话缓存模式。

SSL 会话高速缓存溢出的数量。

SSL 会话缓存大小。

SSL 会话缓存超时数。

从缓存中重用了多少 SSL 连接。

使用了多少个 SSL 会话缓存条目。

复制 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_PEERtable 示服务器要求提供 Client 端证书。如果 Client 端提供了一个,则服务器执行验证,并且仅在验证成功时 continue 进行。 SSL_VERIFY_CLIENT_ONCEtable 示将仅在初始握手中完成对 Client 端证书的请求。

连接的 SSL 协议版本(例如 TLSv1)。如果连接未加密,则该值为空。

可以立即授予对 table 锁定的请求的次数。

无法立即授予对 table 锁的请求并需要 await 的次数。如果这很高,并且您遇到性能问题,则应首先优化查询,然后拆分一个或多个 table 或使用复制。

打开 table 的命中数缓存查找。

打开 table 的未命中数缓存查找。

打开 table 缓存的溢出次数。这是打开或关闭 table 后,高速缓存实例具有未使用的条目且实例的大小大于table_open_cache/table_open_cache_instances的次数。

对于mysqld用作恢复内部 XA 事务的事务协调器时使用的日志的内存 Map 实现,此变量 table 示自服务器启动以来用于日志的最大页面数。如果Tc_log_max_pages_usedTc_log_page_size的乘积始终显着小于对数大小,则该大小大于必需的大小并且可以减小。 (大小是由--log-tc-size选项设置的。未使用此变量:不需要基于二进制日志的恢复,并且不使用内存 Map 的恢复日志方法,除非能够进行两阶段提交的存储引擎的数量并且支持 XATransaction 的数量大于 1(InnoDB是唯一适用的引擎.)

用于 XA 恢复日志的内存 Map 实现的页面大小。默认值是使用getpagesize()确定的。出于与Tc_log_max_pages_used相同的原因,未使用此变量。

对于恢复日志的内存 Map 实现,每次服务器无法提交事务且必须 await 日志中的空闲页面时,此变量都会增加。如果此值很大,则可能要增加日志大小(使用--log-tc-size选项)。对于基于二进制日志的恢复,由于存在两阶段提交,因此每次无法关闭二进制日志时,此变量都会增加。 (关闭操作会 await 所有此类事务完成.)

线程缓存中的线程数。

该变量在嵌入式服务器(libmysqld)中没有意义,从 MySQL 5.7.2 开始,在嵌入式服务器中不再可见。

当前打开的连接数。

创建用于处理连接的线程数。如果Threads_created大,则可能要增加thread_cache_size的值。高速缓存未命中率可以计算为Threads_created/Connections

未休眠的线程数。

服务器已启动的秒数。

自最近的FLUSH STATUS语句以来的秒数。