• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SHOW ENGINE语句

    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显示来自标准InnoDBMonitor的有关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_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.sizemutex_instances.count
    • 总体上适用于性能模式的值以开头performance_schema。范例:performance_schema.memory

    缓冲区属性具有以下含义:

    • size是实现使用的内部记录的大小,例如表中行的大小。size值不能更改。
    • count是内部记录的数量,例如表中的行数。count可以使用Performance Schema配置选项来更改值。
    • 对于表,tbl_name.memory是产品sizecount。对于整个性能模式,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_portMySQL服务器用来连接到管理服务器的端口(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

    • NdbTransactionNdbTransaction已创建的对象的数量和大小。一个NdbTransaction每次创建一个表模式操作(例如CREATE TABLEALTER TABLE)上执行NDB表。
    • NdbOperationNdbOperation已创建的对象的数量和大小。
    • NdbIndexScanOperationNdbIndexScanOperation已创建的对象的数量和大小。
    • NdbIndexOperationNdbIndexOperation已创建的对象的数量和大小。
    • NdbRecAttrNdbRecAttr已创建的对象的数量和大小。通常,每次由SQL节点执行数据操作语句时,都会创建其中之一。
    • NdbBlobNdbBlob已创建的对象的数量和大小。一个NdbBlob是对于涉及每个新创建的操作BLOB在列NDB表。
    • NdbReceiverNdbReceiver已创建的任何对象的数量和大小。在数created列是相同的数据节点,其MySQL服务器具有连接在集群中的数量。
    注意

    SHOW ENGINE NDB STATUS如果NDBMySQL客户端访问运行此语句的SQL节点在当前会话期间未执行任何涉及表的操作,则返回空结果。