events_statements_current表
该events_statements_current
表包含当前语句事件。该表在每个线程中存储一行,以显示该线程最近监视的语句事件的当前状态,因此没有用于配置表大小的系统变量。
在包含语句事件行的表中,这events_statements_current
是最基本的。包含语句事件行的其他表在逻辑上是从当前事件派生的。例如,events_statements_history
和events_statements_history_long
表是已结束的最近语句事件的集合,每个线程最多可容纳最大行数,而在所有线程中则可全局容纳。
有关三个事件表之间关系的更多信息,请参见“当前和历史事件的性能架构表”。events_statements_xxx
有关配置是否收集语句事件的信息,请参见“性能架构语句事件表”。
该events_statements_current
表包含以下列:
THREAD_ID
,EVENT_ID
与事件关联的线程以及事件开始时的线程当前事件号。在
THREAD_ID
和EVENT_ID
一起值唯一标识行。没有两行具有相同的一对值。END_EVENT_ID
此列设置为
NULL
事件开始时的时间,并在事件结束时更新为线程的当前事件号。EVENT_NAME
收集事件的仪器的名称。这是表中的
NAME
值setup_instruments
。仪器名称可能具有多个部分,并形成一个层次结构,如“性能模式仪器命名约定”中所述。对于SQL语句,该
EVENT_NAME
值最初是statement/com/Query
直到该语句被解析为止,然后更改为更合适的值,如“性能架构语句事件表”中所述。SOURCE
源文件的名称,其中包含产生事件的检测代码以及发生检测的文件中的行号。这使您可以检查源以确定确切涉及的代码。
TIMER_START
,TIMER_END
,TIMER_WAIT
事件的时间信息。这些值的单位是皮秒(万亿分之一秒)。在
TIMER_START
和TIMER_END
当事件时间开始和结束的值表示。TIMER_WAIT
是事件经过的时间(持续时间)。如果事件尚未结束,
TIMER_END
则为当前计时器值,并且TIMER_WAIT
为到目前为止的时间(TIMER_END
-TIMER_START
)。如果事件是从具有产生仪器
TIMED = NO
,定时信息不是收集,并且TIMER_START
,TIMER_END
以及TIMER_WAIT
是所有NULL
。有关以皮秒为单位的事件时间和影响时间值的因素的讨论,请参见“性能模式事件时序”。
LOCK_TIME
等待表锁所花费的时间。该值以微秒为单位计算,但归一化为皮秒,以便与其他性能模式计时器进行比较。
SQL_TEXT
SQL语句的文本。对于不与SQL语句关联的命令,其值为
NULL
。默认情况下,可用于语句显示的最大空间为1024字节。要更改此值,请
performance_schema_max_sql_text_length
在服务器启动时设置系统变量。(更改该值也会影响其他性能模式表中的列。请参见“性能模式语句摘要和采样”。)DIGEST
该语句将SHA-256值摘要为64个十六进制字符的字符串,或者
NULL
如果statements_digest
使用者是no
。有关语句摘要的更多信息,请参见“性能模式语句摘要和采样”。DIGEST_TEXT
规范化的语句摘要文本,或者
NULL
如果statements_digest
使用者是no
。有关语句摘要的更多信息,请参见“性能模式语句摘要和采样”。的
performance_schema_max_digest_length
系统变量来确定用于摘要值存储每会话中可用的最大字节数。但是,由于摘要缓冲区中诸如关键字和文字值之类的语句组件的编码,语句摘要的显示长度可能比可用缓冲区长。因此,从DIGEST_TEXT
语句事件表的列中选择的performance_schema_max_digest_length
值可能看起来超过该值。CURRENT_SCHEMA
语句的默认数据库(
NULL
如果没有)。OBJECT_SCHEMA
,OBJECT_NAME
,OBJECT_TYPE
对于嵌套语句(存储的程序),这些列包含有关父语句的信息。否则他们是
NULL
。OBJECT_INSTANCE_BEGIN
此列标识该语句。该值是对象在内存中的地址。
MYSQL_ERRNO
语句诊断区域中的语句错误号。
RETURNED_SQLSTATE
语句诊断区域中的语句SQLSTATE值。
MESSAGE_TEXT
语句诊断区域中的语句错误消息。
ERRORS
语句是否发生错误。如果SQLSTATE值以
00
(完成)或01
(警告)开头,则该值为0 。值为1是SQLSTATE值是其他任何值。WARNINGS
语句诊断区域中的警告数量。
ROWS_AFFECTED
语句影响的行数。有关“受影响”的含义的描述,请参见“ mysql_affected_rows()”。
ROWS_SENT
语句返回的行数。
ROWS_EXAMINED
服务器层检查的行数(不计算存储引擎内部的任何处理)。
CREATED_TMP_DISK_TABLES
类似于
Created_tmp_disk_tables
status变量,但特定于该语句。CREATED_TMP_TABLES
类似于
Created_tmp_tables
status变量,但特定于该语句。SELECT_FULL_JOIN
类似于
Select_full_join
status变量,但特定于该语句。SELECT_FULL_RANGE_JOIN
类似于
Select_full_range_join
status变量,但特定于该语句。SELECT_RANGE
类似于
Select_range
status变量,但特定于该语句。SELECT_RANGE_CHECK
类似于
Select_range_check
status变量,但特定于该语句。SELECT_SCAN
类似于
Select_scan
status变量,但特定于该语句。SORT_MERGE_PASSES
类似于
Sort_merge_passes
status变量,但特定于该语句。SORT_RANGE
类似于
Sort_range
status变量,但特定于该语句。SORT_ROWS
类似于
Sort_rows
status变量,但特定于该语句。SORT_SCAN
类似于
Sort_scan
status变量,但特定于该语句。NO_INDEX_USED
如果该语句在不使用索引的情况下执行了表扫描,则为1,否则为0。
NO_GOOD_INDEX_USED
如果服务器找不到适合该语句的索引,则为1,否则为0。有关详细信息,请参阅的描述
Extra
列从EXPLAIN
输出为Range checked for each record
在值“解释输出格式”。NESTING_EVENT_ID
,NESTING_EVENT_TYPE
,NESTING_EVENT_LEVEL
这三列与其他列一起使用,以提供有关顶级(未嵌套)语句和嵌套语句(在存储程序中执行)的信息,如下所示。
对于顶级语句:
OBJECT_TYPE = NULL OBJECT_SCHEMA = NULL OBJECT_NAME = NULL NESTING_EVENT_ID = NULL NESTING_EVENT_TYPE = NULL NESTING_LEVEL = 0
对于嵌套语句:
OBJECT_TYPE = the parent statement object type OBJECT_SCHEMA = the parent statement object schema OBJECT_NAME = the parent statement object name NESTING_EVENT_ID = the parent statement EVENT_ID NESTING_EVENT_TYPE = 'STATEMENT' NESTING_LEVEL = the parent statement NESTING_LEVEL plus one
STATEMENT_ID
服务器在SQL级别维护的查询ID。该值对于服务器实例是唯一的,因为这些ID是使用全局计数器生成的,该全局计数器以原子方式递增。该列是在MySQL 8.0.14中添加的。
该events_statements_current
表具有以下索引:
- (
THREAD_ID
,EVENT_ID
)上的主键
TRUNCATE TABLE
允许用于events_statements_current
表格。它删除行。