SHOW ENGINE engine_name {STATUS | MUTEX}
SHOW ENGINE
显示有关存储引擎的操作信息。它需要
PROCESS
特权。该声明有以下变体:
SHOW ENGINE INNODB STATUS
SHOW ENGINE INNODB MUTEX
SHOW ENGINE PERFORMANCE_SCHEMA STATUS
SHOW ENGINE INNODB
STATUS
显示来自标准InnoDB
监视器的关于InnoDB
存储引擎状态的大量信息。有关InnoDB
提供有关
InnoDB
处理信息的标准监视器和其他监视器的信息,请参阅
第 15.17 节,“InnoDB 监视器”。
SHOW ENGINE INNODB
MUTEX
显示InnoDB
mutex和
rw-lock统计信息。
InnoDB
互斥锁和 rwlocks 也可以使用Performance Schema表进行监控。请参阅
第 15.16.2 节,“使用性能模式监视 InnoDB 互斥等待”。
使用以下选项动态配置互斥锁统计信息收集:
要启用互斥锁统计信息的收集,请运行:
SET GLOBAL innodb_monitor_enable='latch';
要重置互斥量统计信息,请运行:
SET GLOBAL innodb_monitor_reset='latch';
要禁用互斥锁统计信息的收集,请运行:
SET GLOBAL innodb_monitor_disable='latch';
SHOW ENGINE INNODB
MUTEX
也可以通过设置启用
innodb_monitor_enable='all'
或禁用
互斥统计信息的收集
innodb_monitor_disable='all'
。
SHOW ENGINE INNODB
MUTEX
输出有以下列:
Type
总是
InnoDB
。Name
对于互斥量,该
Name
字段仅报告互斥量名称。对于 rwlock,该Name
字段报告实现 rwlock 的源文件,以及创建 rwlock 的文件中的行号。行号特定于您的 MySQL 版本。Status
互斥状态。该字段报告旋转、等待和调用的次数。
InnoDB
不报告 在 之外实现的低级操作系统互斥量的统计信息 。spins
表示旋转的次数。waits
指示互斥等待的数量。calls
指示请求互斥量的次数。
SHOW ENGINE INNODB MUTEX
不会列出每个缓冲池块的互斥锁和读写锁,因为在具有大型缓冲池的系统上输出量会很大。SHOW ENGINE INNODB MUTEX
但是,打印BUF_BLOCK_MUTEX
缓冲池块互斥锁和读写锁的聚合自旋、等待和调用值。
SHOW ENGINE INNODB MUTEX
也没有列出任何从未等待过的互斥锁或读写锁 ( os_waits=0
)。因此,SHOW ENGINE
INNODB MUTEX
仅显示有关已导致至少一个 OS-level wait的缓冲池之外的互斥锁和读写锁的信息。
用于SHOW ENGINE
PERFORMANCE_SCHEMA STATUS
检查 Performance Schema 代码的内部运行:
mysql> SHOW ENGINE PERFORMANCE_SCHEMA STATUS\G
...
*************************** 3. row ***************************
Type: performance_schema
Name: events_waits_history.size
Status: 76
*************************** 4. row ***************************
Type: performance_schema
Name: events_waits_history.count
Status: 10000
*************************** 5. row ***************************
Type: performance_schema
Name: events_waits_history.memory
Status: 760000
...
*************************** 57. row ***************************
Type: performance_schema
Name: performance_schema.memory
Status: 26459600
...
此声明旨在帮助 DBA 了解不同的性能模式选项对内存需求的影响。
Name
值由两部分组成,分别命名为内部缓冲区和缓冲区属性。解释缓冲区名称如下:
未作为表公开的内部缓冲区在括号内命名。例子:
(pfs_cond_class).size
,(pfs_mutex_class).memory
。在数据库中作为表公开的内部缓冲区以表
performance_schema
命名,不带括号。例子:events_waits_history.size
,mutex_instances.count
。适用于整个性能模式的值以
performance_schema
. 例子:performance_schema.memory
。
缓冲区属性具有以下含义:
size
是实现使用的内部记录的大小,例如表中一行的大小。size
值无法更改。count
是内部记录的数量,例如表中的行数。count
可以使用 Performance Schema 配置选项更改值。对于表格,
是 和 的tbl_name
.memorysize
乘积count
。对于整个 Performance Schema,performance_schema.memory
是所有已用内存的总和(所有其他memory
值的总和)。
SHOW
ENGINE
在某些情况下,性能模式配置参数和值
之间存在直接关系。例如,
events_waits_history_long.count
对应于
performance_schema_events_waits_history_long_size
. 在其他情况下,关系更为复杂。例如,
events_waits_history.count
对应于
performance_schema_events_waits_history_size
(每个线程的行数)乘以
performance_schema_max_thread_instances
(线程数)。
显示引擎 NDB 状态。
如果服务器NDB
启用了存储引擎,则SHOW ENGINE NDB STATUS
显示集群状态信息,例如连接的数据节点数、集群连接字符串和集群二进制日志纪元,以及连接到 MySQL 服务器时创建的各种集群 API 对象的计数簇。此语句的示例输出如下所示:
mysql> SHOW ENGINE NDB STATUS;
+------------+-----------------------+--------------------------------------------------+
| Type | Name | Status |
+------------+-----------------------+--------------------------------------------------+
| ndbcluster | connection | cluster_node_id=7,
connected_host=198.51.100.103, connected_port=1186, number_of_data_nodes=4,
number_of_ready_data_nodes=3, connect_count=0 |
| ndbcluster | NdbTransaction | created=6, free=0, sizeof=212 |
| ndbcluster | NdbOperation | created=8, free=8, sizeof=660 |
| ndbcluster | NdbIndexScanOperation | created=1, free=1, sizeof=744 |
| ndbcluster | NdbIndexOperation | created=0, free=0, sizeof=664 |
| ndbcluster | NdbRecAttr | created=1285, free=1285, sizeof=60 |
| ndbcluster | NdbApiSignal | created=16, free=16, sizeof=136 |
| ndbcluster | NdbLabel | created=0, free=0, sizeof=196 |
| ndbcluster | NdbBranch | created=0, free=0, sizeof=24 |
| ndbcluster | NdbSubroutine | created=0, free=0, sizeof=68 |
| ndbcluster | NdbCall | created=0, free=0, sizeof=16 |
| ndbcluster | NdbBlob | created=1, free=1, sizeof=264 |
| ndbcluster | NdbReceiver | created=4, free=0, sizeof=68 |
| ndbcluster | binlog | latest_epoch=155467, latest_trans_epoch=148126,
latest_received_binlog_epoch=0, latest_handled_binlog_epoch=0,
latest_applied_binlog_epoch=0 |
+------------+-----------------------+--------------------------------------------------+
每行中的Status
列分别提供有关 MySQL 服务器与集群的连接和集群二进制日志状态的信息。信息采用Status
逗号分隔的名称/值对组形式。
该connection
行的
Status
列包含下表中描述的名称/值对。
姓名 | 价值 |
---|---|
cluster_node_id |
集群中MySQL服务器的节点ID |
connected_host |
MySQL服务器所连接的集群管理服务器的主机名或IP地址 |
connected_port |
MySQL服务器连接管理服务器使用的端口( connected_host ) |
number_of_data_nodes |
为集群配置的数据节点数(即[ndbd] 集群
config.ini 文件中的section数) |
number_of_ready_data_nodes |
集群中实际运行的数据节点数 |
connect_count |
此mysqld已连接或重新连接到集群数据节点的次数 |
该binlog
行的
Status
列包含与 NDB Cluster Replication 相关的信息。它包含的名称/值对如下表所述。
姓名 | 价值 |
---|---|
latest_epoch |
most recent epoch most recently run on this MySQL server(即最近在服务器上运行的事务的序号) |
latest_trans_epoch |
集群数据节点处理的最近时期 |
latest_received_binlog_epoch |
二进制日志线程收到的最新纪元 |
latest_handled_binlog_epoch |
二进制日志线程处理的最近纪元(用于写入二进制日志) |
latest_applied_binlog_epoch |
实际写入二进制日志的最近纪元 |
有关更多信息,请参阅第 23.7 节,“NDB Cluster 复制”。
输出中的其余行SHOW ENGINE NDB
STATUS
最有可能被证明对监视集群有用,如下所示
Name
:
NdbTransaction
NdbTransaction
:已创建对象的数量和大小 。NdbTransaction
每次对表执行表架构操作(例如CREATE TABLE
或ALTER TABLE
)时都会创建一个NDB
。NdbOperation
NdbOperation
:已创建对象 的数量和大小 。NdbIndexScanOperation
NdbIndexScanOperation
:已创建对象 的数量和大小。NdbIndexOperation
NdbIndexOperation
:已创建对象 的数量和大小 。NdbRecAttr
: The number and size ofNdbRecAttr
objects that have been created. In general, one of these is created each time a data manipulation statement is performed by an SQL node.NdbBlob
: The number and size ofNdbBlob
objects that have been created. AnNdbBlob
is created for each new operation involving aBLOB
column in anNDB
table.NdbReceiver
: The number and size of anyNdbReceiver
object that have been created. The number in thecreated
column is the same as the number of data nodes in the cluster to which the MySQL server has connected.
SHOW ENGINE NDB STATUS
NDB
如果MySQL 客户端访问运行此语句的 SQL 节点,在当前会话期间未执行
任何涉及表的操作,则返回空结果
。