仪器名称由一系列元素组成,以' / '
字符。示例名称:
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/Execute语句/com/查询语句/sql/create_table语句/sql/lock_tables errors
仪器名称空间具有树状结构。乐器名称的元素从左到右提供了从更一般到更具体的顺序。名称中元素的数量取决于乐器的类型。
名称中给定元素的解释取决于它左边的元素。例如,myisam
出现在下面两个名字里,但是myisam
第一个名称与文件I/O有关,而第二个名称与同步仪器有关:
等待/ io /文件/ myisam /日志等/同步/电导率/ myisam / MI_SORT_INFO::电导率
仪器名称由一个前缀(其结构由Performance Schema实现定义)和一个后缀(由实现仪器代码的开发人员定义)组成。仪器前缀的顶层元素表示仪器的类型。对象中的哪个事件计时器performance_timers
表适用于仪器。对于仪器名称的前缀部分,最上面一层表示仪器的类型。
乐器名称的后缀部分来自乐器本身的代码。后缀可以包括以下级别:
主元素的名称(服务器模块,例如
myisam
,innodb
,mysys
,或sql
)或插件名。表单中代码中变量的名称
XXX
(全局变量)或
(一个成员CCC
::嗯
嗯
在课堂上CCC
).例子:COND_thread_cache
,THR_LOCK_myisam
,BINLOG: LOCK_index
.
闲置
:一个被检测的空闲事件。这台仪器没有其他部件了。错误
:检测错误事件。这台仪器没有其他部件了。内存
:一个仪器化的内存事件。阶段
:一个精心设计的舞台事件。声明
:一个检测语句事件。事务
:检测事务事件。这台仪器没有其他部件了。等待
:一个检测的等待事件。
的闲置
的描述中所讨论的性能模式生成的空闲事件socket_instances。状态
列章节27.12.3.5,“socket_instances表”.
的错误
Instrument表示是否收集服务器错误和警告信息。该工具默认启用。的定时
列,用于错误
排在setup_instruments
表不适用,因为没有收集计时信息。
默认情况下启用内存检测。内存检测可以在启动时启用或禁用,也可以在运行时通过更新启用
的相关文书栏setup_instruments
表格记忆乐器有其形式的名称内存/
在哪里code_area
/instrument_name
code_area
值是否为sql
或myisam
,instrument_name
是仪器细节。
以前缀命名的仪器内存/ performance_schema /
暴露在性能模式中为内部缓冲区分配了多少内存。的内存/ performance_schema /
仪器是内置的,总是启用的,不能在启动或运行时禁用。内置内存仪表只显示在memory_summary_global_by_event_name
表格有关更多信息,请参见第27.17节,“性能模式内存分配模型”.
舞台乐器有其形式的名称阶段/
,在那里code_area
/stage_name
code_area
值是否为sql
或myisam
,stage_name
指示语句处理的阶段,例如排序结果
或发送数据
.阶段对应于显示的线程状态显示PROCESSLIST
或者在INFORMATION_SCHEMA。PROCESSLIST
表格
声明抽象/ * /
:用于语句操作的抽象工具。抽象工具是在语句分类的早期阶段,在确切的语句类型已知之前使用,然后在类型已知时更改为更具体的语句工具。有关此过程的描述,请参见第27.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 /选择
仪器用于创建数据库
而且选择
语句。
检测的线程显示在setup_threads
表,它公开线程类名称和属性。
螺纹乐器以线程
(例如,线程/ sql / parser_service
或线程/ performance_schema /设置
).
等待/ 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等待通常有两行。有关更多信息,请参见第27.8节,“原子和分子事件的性能模式”.一些行操作可能会导致多个表I/O等待。例如,插入操作可能会激活导致更新的触发器。
等待/锁
一种仪器锁定操作。
等待/锁定/表
仪表表锁操作。
等待/锁定/ / sql / mdl元数据
仪器化元数据锁定操作。
等待/同步
一个检测的同步对象。对于同步对象,使用
TIMER_WAIT
时间包括在试图获得对象上的锁(如果有的话)时所阻塞的时间。等待/同步/电导率
一个线程使用条件向其他线程发出信号,表明它们所等待的事情发生了。如果一个线程正在等待一个条件,它可以被唤醒并继续执行。如果有几个线程正在等待,它们都可以被唤醒,并争夺它们正在等待的资源。
等待/同步/互斥
互斥对象,用于允许访问资源(例如可执行代码的一段),同时阻止其他线程访问该资源。
等待/同步/ prlock
优先考虑rwlock锁对象。
等待/同步/ rwlock
一个普通的读/写锁对象,用于锁定特定变量以供访问,同时防止其他线程使用该变量。一个共享读锁可以由多个线程同时获得。独占写锁一次只能由一个线程获得。
等待/同步/ sxlock
共享-排他(SX)锁是一种rwlock锁对象,它提供对公共资源的写访问,同时允许其他线程进行不一致的读取。
sxlocks
优化并发性并提高读写工作负载的可伸缩性。