仪器名称由一系列由
'/'
字符分隔的元素组成。示例名称:
wait/io/file/myisam/log
wait/io/file/mysys/charset
wait/lock/table/sql/handler
wait/synch/cond/mysys/COND_alarm
wait/synch/cond/sql/BINLOG::update_cond
wait/synch/mutex/mysys/BITMAP_mutex
wait/synch/mutex/sql/LOCK_delete
wait/synch/rwlock/sql/Query_cache_query::lock
stage/sql/closing tables
stage/sql/Sorting result
statement/com/Execute
statement/com/Query
statement/sql/create_table
statement/sql/lock_tables
仪器名称空间具有树状结构。乐器名称的元素从左到右提供了从更一般到更具体的进展。名称中元素的数量取决于乐器的类型。
名称中给定元素的解释取决于其左侧的元素。例如,myisam
出现在以下两个名称中,但
myisam
第一个名称与文件 I/O 相关,而第二个名称与同步工具相关:
wait/io/file/myisam/log
wait/synch/cond/myisam/MI_SORT_INFO::cond
仪器名称由具有由性能模式实现定义的结构的前缀和由实现仪器代码的开发人员定义的后缀组成。仪器前缀的顶级元素表示仪器的类型。此元素还确定
setup_timers
表中的哪个事件计时器适用于仪器。对于仪器名称的前缀部分,顶层表示仪器的类型。
乐器名称的后缀部分来自乐器本身的代码。后缀可能包括以下级别:
主要元素的名称(服务器模块,例如
myisam
、innodb
、mysys
或sql
)或插件名称。代码中变量的名称,形式
XXX
为(全局变量)或 (类中 的成员)。例子: , , 。CCC
::MMM
MMM
CCC
COND_thread_cache
THR_LOCK_myisam
BINLOG::LOCK_index
该idle
仪器用于空闲事件,如第 22.12.3.5 节,“socket_instances 表”socket_instances.STATE
中的
列
描述中所讨论的那样,Performance Schema 生成这些事件。
阶段工具的名称形式为
,其中是一个值,例如
或,
表示语句处理的阶段,例如
或。阶段对应于表中显示的或可见
的线程状态
。
stage/
code_area
/stage_name
code_area
sql
myisam
stage_name
Sorting result
Sending data
SHOW
PROCESSLIST
INFORMATION_SCHEMA.PROCESSLIST
statement/abstract/*
: 语句操作的抽象工具。在确切语句类型未知之前,在语句分类的早期阶段使用抽象工具,然后在类型已知时更改为更具体的语句工具。有关此过程的描述,请参阅 第 22.12.6 节,“性能模式语句事件表”。statement/com
:检测命令操作。这些具有与操作对应的名称 (请参阅头文件和。例如,和 工具对应于和 命令。COM_
xxx
mysql_com.h
sql/sql_parse.cc
statement/com/Connect
statement/com/Init DB
COM_CONNECT
COM_INIT_DB
statement/sql
:检测的 SQL 语句操作。例如,statement/sql/create_db
andstatement/sql/select
工具用于CREATE DATABASE
andSELECT
语句。
wait/io
检测 I/O 操作。
wait/io/file
检测文件 I/O 操作。对于文件,等待是等待文件操作完成的时间(例如,调用
fwrite()
)。由于缓存,磁盘上的物理文件 I/O 可能不会在此调用中发生。wait/io/socket
检测套接字操作。套接字工具的名称为 . 服务器为其支持的每个网络协议都有一个侦听套接字。与用于 TCP/IP 或 Unix 套接字文件连接的侦听套接字关联的工具分别具有 或 值 。当侦听套接字检测到连接时,服务器会将连接传输到由单独线程管理的新套接字。新连接螺纹的仪器 值为.
wait/io/socket/sql/
socket_type
socket_type
server_tcpip_socket
server_unix_socket
socket_type
client_connection
wait/io/table
检测表 I/O 操作。这些包括对持久基表或临时表的行级访问。影响行的操作是获取、插入、更新和删除。对于视图,等待与视图引用的基表相关联。
与大多数等待不同,表 I/O 等待可以包括其他等待。例如,表 I/O 可能包括文件 I/O 或内存操作。因此,
events_waits_current
对于表 I/O 等待通常有两行。有关详细信息,请参阅 第 22.8 节,“性能模式原子和分子事件”。某些行操作可能会导致多个表 I/O 等待。例如,插入可能会激活导致更新的触发器。
wait/lock
检测锁定操作。
wait/lock/table
检测表锁定操作。
wait/synch
一个检测的同步对象。对于同步对象,该
TIMER_WAIT
时间包括尝试获取对象锁时阻塞的时间量(如果有)。wait/synch/cond
一个线程使用一个条件来向其他线程发出信号,表明它们正在等待的事情已经发生。如果单个线程正在等待一个条件,它可以唤醒并继续执行。如果有多个线程在等待,它们都可以醒来并竞争它们正在等待的资源。
wait/synch/mutex
一种互斥对象,用于允许访问资源(例如一段可执行代码)同时防止其他线程访问该资源。
wait/synch/rwlock
读/写锁对象,用于锁定特定变量以供访问,同时防止其他线程使用它。一个共享读锁可以被多个线程同时获取。独占写锁一次只能由一个线程获取。