该events_statements_current
表包含当前语句事件。该表为每个线程存储一行,显示线程最近监视的语句事件的当前状态,因此没有用于配置表大小的系统变量。
在包含语句事件行的表中,
events_statements_current
是最基本的。其他包含语句事件行的表在逻辑上是从当前事件派生的。例如,
events_statements_history
和
events_statements_history_long
表是最近结束的语句事件的集合,分别达到每个线程的最大行数和所有线程的全局行数。
有关三个事件表
之间关系的更多信息
,请参阅第 25.9 节,“当前和历史事件的性能模式表”。
events_statements_
xxx
有关配置是否收集语句事件的信息,请参阅 第 25.12.6 节,“性能模式语句事件表”。
该events_statements_current
表有以下列:
THREAD_ID
,EVENT_ID
与事件关联的线程和事件开始时的线程当前事件号。
THREAD_ID
和EVENT_ID
值一起唯一标识该行。 没有两行具有相同的一对值。END_EVENT_ID
此列设置为
NULL
事件开始时,并在事件结束时更新为线程当前事件编号。EVENT_NAME
从中收集事件的工具的名称。这是表中的
NAME
值setup_instruments
。仪器名称可能有多个部分并形成一个层次结构,如 第 25.6 节“性能模式仪器命名约定”中所述。对于 SQL 语句,
EVENT_NAME
值最初是statement/com/Query
直到语句被解析,然后更改为更合适的值,如 第 25.12.6 节,“性能模式语句事件表”中所述。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
。有关皮秒作为事件时间单位的讨论以及影响时间值的因素,请参阅 第 25.4.1 节,“性能模式事件计时”。
LOCK_TIME
等待表锁所花费的时间。该值以微秒为单位计算,但归一化为皮秒,以便与其他 Performance Schema 计时器进行比较。
SQL_TEXT
SQL 语句的文本。对于与 SQL 语句无关的命令,值为
NULL
.默认情况下,语句显示的最大可用空间为 1024 字节。要更改此值,请
performance_schema_max_sql_text_length
在服务器启动时设置系统变量。DIGEST
语句摘要 MD5 值作为 32 个十六进制字符的字符串,或者
NULL
如果statements_digest
消费者是no
. 有关语句摘要的更多信息,请参阅 第 25.10 节,“性能模式语句摘要”。DIGEST_TEXT
规范化的语句摘要文本,或者
NULL
如果statements_digest
消费者是no
. 有关语句摘要的更多信息,请参阅 第 25.10 节,“性能模式语句摘要”。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
(completion) 或01
(warning) 开头,则值为 0。值为 1 是 SQLSTATE 值是任何其他值。WARNINGS
来自语句诊断区域的警告数。
ROWS_AFFECTED
语句影响的行数。有关“受影响”含义的描述,请参阅 mysql_affected_rows()。
ROWS_SENT
语句返回的行数。
ROWS_EXAMINED
服务器层检查的行数(不计算存储引擎内部的任何处理)。
CREATED_TMP_DISK_TABLES
类似于
Created_tmp_disk_tables
状态变量,但特定于语句。CREATED_TMP_TABLES
类似于
Created_tmp_tables
状态变量,但特定于语句。SELECT_FULL_JOIN
类似于
Select_full_join
状态变量,但特定于语句。SELECT_FULL_RANGE_JOIN
类似于
Select_full_range_join
状态变量,但特定于语句。SELECT_RANGE
类似于
Select_range
状态变量,但特定于语句。SELECT_RANGE_CHECK
类似于
Select_range_check
状态变量,但特定于语句。SELECT_SCAN
类似于
Select_scan
状态变量,但特定于语句。SORT_MERGE_PASSES
类似于
Sort_merge_passes
状态变量,但特定于语句。SORT_RANGE
类似于
Sort_range
状态变量,但特定于语句。SORT_ROWS
类似于
Sort_rows
状态变量,但特定于语句。SORT_SCAN
类似于
Sort_scan
状态变量,但特定于语句。NO_INDEX_USED
如果语句在不使用索引的情况下执行表扫描,则为 1,否则为 0。
NO_GOOD_INDEX_USED
如果服务器没有找到用于该语句的良好索引,则为 1,否则为 0。有关其他信息,请参阅第 8.8.2 节“EXPLAIN 输出格式”中值的 输出
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
TRUNCATE TABLE
表是允许的events_statements_current
。它删除行。