该events_waits_current
表包含当前等待事件。该表为每个线程存储一行,显示线程最近监视的等待事件的当前状态,因此没有用于配置表大小的系统变量。
在包含等待事件行的表中,
events_waits_current
是最基本的。其他包含等待事件行的表在逻辑上是从当前事件派生的。例如,
events_waits_history
和
events_waits_history_long
表是最近结束的等待事件的集合,分别达到每个线程的最大行数和所有线程的全局行数。
有关三个等待事件表之间关系的更多信息,请参阅 第 22.9 节,“当前和历史事件的性能模式表”。
有关配置是否收集等待事件的信息,请参阅第 22.12.4 节,“性能模式等待事件表”。
该events_waits_current
表有以下列:
THREAD_ID
,EVENT_ID
与事件关联的线程和事件开始时的线程当前事件号。
THREAD_ID
和EVENT_ID
值一起唯一标识该行。 没有两行具有相同的一对值。END_EVENT_ID
此列设置为
NULL
事件开始时,并在事件结束时更新为线程当前事件编号。EVENT_NAME
产生事件的工具的名称。这是表中的
NAME
值setup_instruments
。仪器名称可能有多个部分并形成一个层次结构,如 第 22.6 节“性能模式仪器命名约定”中所述。SOURCE
源文件的名称,其中包含生成事件的检测代码以及检测发生的文件中的行号。这使您能够检查源代码以准确确定涉及的代码。例如,如果互斥锁或锁被阻塞,您可以检查发生这种情况的上下文。
TIMER_START
,TIMER_END
,TIMER_WAIT
事件的时间信息。这些值的单位是皮秒(万亿分之一秒)。和 值指示事件计时何时开始
TIMER_START
和TIMER_END
结束。TIMER_WAIT
是事件经过的时间(持续时间)。如果一个事件还没有结束,
TIMER_END
并且TIMER_WAIT
是NULL
MySQL 5.6.26 之前的。从 5.6.26 开始,TIMER_END
是当前计时器值,TIMER_WAIT
是到目前为止经过的时间 (TIMER_END
-TIMER_START
)。如果事件是由具有 的仪器产生的
TIMED = NO
,则不会收集计时信息,并且TIMER_START
、TIMER_END
和TIMER_WAIT
都是NULL
。有关皮秒作为事件时间单位的讨论以及影响时间值的因素,请参阅 第 22.4.1 节,“性能模式事件计时”。
SPINS
对于互斥量,自旋轮数。如果值为
NULL
,则代码不使用自旋轮或不检测自旋。OBJECT_SCHEMA
,OBJECT_NAME
,OBJECT_TYPE
,OBJECT_INSTANCE_BEGIN
这些列标识了“被操作的对象” 。”这意味着什么取决于对象类型。
对于同步对象 (
cond
,mutex
,rwlock
):OBJECT_SCHEMA
,OBJECT_NAME
, 并且OBJECT_TYPE
是NULL
。OBJECT_INSTANCE_BEGIN
是同步对象在内存中的地址。
对于文件 I/O 对象:
OBJECT_SCHEMA
是NULL
。OBJECT_NAME
是文件名。OBJECT_TYPE
是FILE
。OBJECT_INSTANCE_BEGIN
是内存中的一个地址。
对于套接字对象:
OBJECT_NAME
是IP:PORT
套接字的值。OBJECT_INSTANCE_BEGIN
是内存中的一个地址。
对于表 I/O 对象:
OBJECT_SCHEMA
是包含该表的模式的名称。OBJECT_NAME
是表名。OBJECT_TYPE
用于TABLE
持久基表或TEMPORARY TABLE
临时表。OBJECT_INSTANCE_BEGIN
是内存中的一个地址。
一个
OBJECT_INSTANCE_BEGIN
值本身没有任何意义,只是不同的值表示不同的对象。OBJECT_INSTANCE_BEGIN
可用于调试。例如,它可以用于GROUP BY OBJECT_INSTANCE_BEGIN
查看 1,000 个互斥锁(例如保护 1,000 个页面或数据块)上的负载是均匀分布还是仅遇到一些瓶颈。如果您在日志文件或其他调试或性能工具中看到相同的对象地址,这可以帮助您关联其他信息源。INDEX_NAME
使用的索引的名称。
PRIMARY
表主索引。NULL
意味着没有使用索引。NESTING_EVENT_ID
EVENT_ID
嵌套此事件的事件 的值。NESTING_EVENT_TYPE
嵌套事件类型。值为
STATEMENT
、STAGE
或WAIT
。OPERATION
执行的操作类型,例如
lock
、read
或write
。NUMBER_OF_BYTES
操作读取或写入的字节数。对于表 I/O 等待(
wait/io/table/sql/handler
仪器事件),NUMBER_OF_BYTES
是NULL
.FLAGS
保留以供将来使用。
TRUNCATE TABLE
表是允许的events_waits_current
。它删除行。