乐器名称由一系列元素组成,以' / '
字符。示例名称:
wait/io/file/myisam/log wait/io/file/mysys/charset wait/lock/table/sql/handler wait/sync /cond/mysys/COND_alarm wait/sync /cond/sql/BINLOG::update_cond wait/sync /mutex/mysys/BITMAP_mutex wait/sync /mutex/sql/LOCK_delete wait/sync /rwlock/sql/Query_cache_query::锁定阶段/sql/关闭表阶段/sql/排序结果语句/ /com/执行语句/com/查询语句/sql/create_table语句/sql/lock_tables . sql/
仪器名称空间具有树状结构。乐器名称的元素从左到右表示从一般到具体的递进。名称的元素数量取决于乐器的类型。
名称中给定元素的解释取决于它左边的元素。例如,myisam
出现在下面两个名字里,但是myisam
在第一个名称中与文件I/O有关,而在第二个名称中则与同步仪器有关:
等待/ io /文件/ myisam /日志等/同步/电导率/ myisam / MI_SORT_INFO::电导率
仪器名称由一个带有Performance Schema实现定义的结构的前缀和一个由实现仪器代码的开发人员定义的后缀组成。乐器前缀的顶层元素表示乐器的类型。对象中的哪个事件计时器setup_timer
该表适用于仪器。在仪器名称的前缀部分,最上面一层表示仪器的类型。
乐器名称的后缀部分来自乐器本身的代码。后缀可以包括以下级别:
主要元素的名称(服务器模块,如
myisam
,innodb
,mysys
,或sql
)或插件名称。代码中变量的名称
XXX
(一个全局变量)或
(一个成员CCC
::嗯
嗯
在课堂上CCC
).例子:COND_thread_cache
,THR_LOCK_myisam
,BINLOG: LOCK_index
.
闲置
:一个仪器化的空闲事件。这乐器没有其他的部件了。内存
:工具化的记忆事件。阶段
乐器演奏的舞台活动。声明
:工具化语句事件。事务
:一个仪器化事务事件。这乐器没有其他的部件了。等待
:一个仪器化的等待事件。
的闲置
的描述中所讨论的性能模式生成的空闲事件socket_instances。状态
列第25.12.3.5节“socket_instances表”.
大多数内存检测在默认情况下是禁用的,可以在启动时启用或禁用,或者在运行时通过更新启用
列的相关文书setup_instruments
表格记忆仪器有其形式的名称内存/
在哪里code_area
/instrument_name
code_area
值如sql
或myisam
,instrument_name
是仪器细节。
以前缀命名的仪器内存/ performance_schema /
公开在性能模式中为内部缓冲区分配了多少内存。的内存/ performance_schema /
仪器是内置的,总是启用的,不能在启动或运行时禁用。内置的存储仪器只显示在memory_summary_global_by_event_name
表格有关更多信息,请参见第25.17节“性能模式内存分配模型”.
舞台乐器有其形式的名称阶段/
,在那里code_area
/stage_name
code_area
值如sql
或myisam
,stage_name
指示语句处理的阶段,例如排序结果
或发送数据
.所显示的线程状态对应显示PROCESSLIST
或者是看得见的INFORMATION_SCHEMA。PROCESSLIST
表格
声明抽象/ * /
:用于语句操作的抽象工具。在语句分类的早期阶段,在确切的语句类型确定之前使用抽象工具,然后在类型确定之后改用更具体的语句工具。有关此过程的描述,请参见第25.12.6节“性能架构声明事件表”.声明/ com
:仪器化的命令操作。它们的名称对应于COM_
操作(见xxx
mysql_com.h
头文件和sql / sql_parse.cc
.例如,声明/ com/Connect
而且声明/ com/Init DB
仪器对应于COM_CONNECT
而且COM_INIT_DB
命令。声明/调度器/事件
:跟踪事件调度器执行的所有事件的单一工具。当计划的事件开始执行时,该工具就会发挥作用。声明/ sp
:由存储程序执行的内部指令。例如,声明/ sp / cfetch
而且声明/ sp / freturn
仪器使用游标获取和函数返回指令。声明/ sql
:工具化的SQL语句操作。例如,声明/ sql / create_db
而且声明/ sql /选择
仪器用于创建数据库
而且选择
语句。
等待/ io
仪器化的I/O操作。
等待io /文件
一个检测文件I/O操作。对于文件,等待是等待文件操作完成的时间(例如,调用
写入文件()
).由于缓存,磁盘上的物理文件I/O可能不会在此调用中发生。等待/ io /套接字
仪器化的套接字操作。套接式仪器有其形式的名称
等待/ io /套筒/ sql /
.服务器对它支持的每种网络协议都有一个监听套接字。与侦听TCP/IP或Unix套接字文件连接的套接字相关的仪器有一个socket_type
socket_type
的价值server_tcpip_socket
或server_unix_socket
,分别。当侦听套接字检测到连接时,服务器将连接转移到由单独线程管理的新套接字。该仪器对于新连接螺纹有一个socket_type
的价值client_connection
.等待/ io /表
仪器表I/O操作。这包括对持久基表或临时表的行级访问。影响行的操作有:取、插入、更新和删除。对于视图,等待与视图引用的基表相关联。
与大多数等待不同,表I/O等待可以包括其他等待。例如,表I/O可能包括文件I/O或内存操作。因此,
events_waits_current
对于一个表,I/O等待通常有两行。有关更多信息,请参见第25.8节,“性能模式原子和分子事件”.某些行操作可能会导致多个表I/O等待。例如,插入可能会激活一个触发器,从而导致更新。
等待/锁
仪器化的锁操作。
等待/锁定/表
仪器表锁定操作。
等待/锁定/ / sql / mdl元数据
仪器化元数据锁定操作。
等待/同步
仪器化的同步对象。对于同步对象,
TIMER_WAIT
时间包括试图获取对象上的锁(如果有的话)时阻塞的时间。等待/同步/电导率
一个线程使用条件向其他线程发出信号,表明它们正在等待的事情已经发生。如果一个线程正在等待一个条件,它可以被唤醒并继续执行。如果有几个线程正在等待,它们都可以被唤醒,并竞争它们正在等待的资源。
等待/同步/互斥
互斥对象,用于允许对资源(如可执行代码的一段)的访问,同时阻止其他线程访问该资源。
等待/同步/ rwlock
一个读/写锁对象,用于锁定要访问的特定变量,同时防止其他线程使用该变量。多个线程可以同时获取共享读锁。排他写锁一次只能由一个线程获得。
等待/同步/ sxlock
共享排他(SX)锁是一种rwlock锁对象,该对象提供对公共资源的写访问,同时允许其他线程进行不一致的读取。
sxlocks
优化并发性并提高读写工作负载的可伸缩性。