SHOW ENGINE语句
SHOW ENGINE engine_name {STATUS |MUTEX }
SHOW ENGINE
显示有关存储引擎的操作信息。它需要PROCESS
特权。该语句具有以下变体:
SHOW ENGINE INNODBSTATUS SHOW ENGINE INNODBMUTEX SHOW ENGINE PERFORMANCE_SCHEMASTATUS
SHOW ENGINE INNODB STATUS
显示来自标准InnoDB
Monitor的有关InnoDB
存储引擎状态的大量信息。有关标准监视器和其他InnoDB
提供有关InnoDB
处理信息的监视器的信息,请参见“ InnoDB监视器”。
SHOW ENGINE INNODB MUTEX
显示InnoDB
互斥和 rw-lock统计信息。
注意
InnoDB
互斥锁和rwlock也可以使用Performance Schema表进行监视。请参见“使用性能模式监视InnoDB Mutex等待”。
使用以下选项动态配置Mutex统计信息收集:
要启用互斥量统计信息收集,请运行:
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
跳过互斥和 RW-锁的缓冲池块,作为输出的量可以在具有大的缓冲池系统是压倒性的。(每个16K缓冲池块中有一个互斥锁和一个rw锁,每千兆字节有65,536个块。)SHOW ENGINE INNODB MUTEX
也不列出从未等待过的任何互斥锁或rw锁(os_waits=0
)。因此,SHOW ENGINE INNODB MUTEX
仅显示有关导致至少一个OS级等待的缓冲池之外的互斥锁和rw锁的信息。
使用SHOW ENGINE PERFORMANCE_SCHEMA STATUS
检查绩效模式的代码的内部操作:
mysql>SHOW ENGINE PERFORMANCE_SCHEMASTATUS \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.memory
是产品size
和count
。对于整个性能模式,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服务器时由MySQL Server创建的各种群集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 文件中的节数) |
number_of_ready_data_nodes | 集群中实际正在运行的数据节点数 |
connect_count | 该mysqld已连接或重新连接到集群数据节点的次数 |
该binlog
行的Status
列包含有关NDB群集复制的信息。下表描述了它包含的名称/值对。
名称 | 值 |
---|---|
latest_epoch | 此MySQL服务器上最近运行的最新纪元(即服务器上运行的最新事务的序列号) |
latest_trans_epoch | 集群数据节点处理的最新纪元 |
latest_received_binlog_epoch | 二进制日志线程收到的最新纪元 |
latest_handled_binlog_epoch | 二进制日志线程处理的最新纪元(用于写入二进制日志) |
latest_applied_binlog_epoch | 实际写入二进制日志的最新纪元 |
有关更多信息,请参见“ NDB群集复制”。
SHOW ENGINE NDB STATUS
此处列出了其输出中最有可能证明对监视集群有用的其余行Name
:
NdbTransaction
:NdbTransaction
已创建的对象的数量和大小。一个NdbTransaction
每次创建一个表模式操作(例如CREATE TABLE
或ALTER TABLE
)上执行NDB
表。NdbOperation
:NdbOperation
已创建的对象的数量和大小。NdbIndexScanOperation
:NdbIndexScanOperation
已创建的对象的数量和大小。NdbIndexOperation
:NdbIndexOperation
已创建的对象的数量和大小。NdbRecAttr
:NdbRecAttr
已创建的对象的数量和大小。通常,每次由SQL节点执行数据操作语句时,都会创建其中之一。NdbBlob
:NdbBlob
已创建的对象的数量和大小。一个NdbBlob
是对于涉及每个新创建的操作BLOB
在列NDB
表。NdbReceiver
:NdbReceiver
已创建的任何对象的数量和大小。在数created
列是相同的数据节点,其MySQL服务器具有连接在集群中的数量。
SHOW ENGINE NDB STATUS
如果NDB
MySQL客户端访问运行此语句的SQL节点在当前会话期间未执行任何涉及表的操作,则返回空结果。