29.12.20.8 表 I/O 和锁等待摘要表
以下部分描述了表 I/O 和锁等待摘要表:
-
table_io_waits_summary_by_index_usage:表 I/O 等待索引 -
table_io_waits_summary_by_table:表 I/O 等待表
The table_io_waits_summary_by_table 表对所有表 I/O 等待事件进行聚合,生成由 wait/io/table/sql/handler instrument 生成的事件。分组是根据表。
The table_io_waits_summary_by_table 表具有以下分组列,以指示如何对事件进行聚合:OBJECT_TYPE,OBJECT_SCHEMA 和 OBJECT_NAME。这些列在 events_waits_current 表中具有相同的含义。它们标识了该行适用的表。
table_io_waits_summary_by_table 表具有以下汇总列,包含聚合值。正如列描述所示,一些列是更通用的,具有与相应的插入、更新和删除列相同的值。例如,聚合所有写入的列持有相应的插入、更新和删除列的总和。在这种方式下,高级聚合可以直接可用,而不需要用户定义的视图来求和低级列。
-
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT这些列聚合所有 I/O 操作。它们与相应的
和xxx_READ列相同,为所有 I/O 操作的总和。xxx_WRITE -
COUNT_READ,SUM_TIMER_READ,MIN_TIMER_READ,AVG_TIMER_READ,MAX_TIMER_READ这些列对所有读操作进行聚合。它们与相应的
列的总和相同。xxx_FETCH -
COUNT_WRITE,SUM_TIMER_WRITE,MIN_TIMER_WRITE,AVG_TIMER_WRITE,MAX_TIMER_WRITE这些列对所有写操作进行聚合。它们与相应的
,xxx_INSERT, 和xxx_UPDATE列的总和相同。xxx_DELETE -
COUNT_FETCH,SUM_TIMER_FETCH,MIN_TIMER_FETCH,AVG_TIMER_FETCH,MAX_TIMER_FETCH这些列对所有fetch操作进行聚合。
-
COUNT_INSERT,SUM_TIMER_INSERT,MIN_TIMER_INSERT,AVG_TIMER_INSERT,MAX_TIMER_INSERT这些列对所有插入操作进行聚合。
-
COUNT_UPDATE,SUM_TIMER_UPDATE,MIN_TIMER_UPDATE,AVG_TIMER_UPDATE,MAX_TIMER_UPDATE这些列对所有更新操作进行聚合。
-
COUNT_DELETE,SUM_TIMER_DELETE,MIN_TIMER_DELETE,AVG_TIMER_DELETE,MAX_TIMER_DELETE这些列对所有删除操作进行聚合。
表table_io_waits_summary_by_table具有以下索引:
-
唯一索引(
OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME)
TRUNCATE TABLE允许对表I/O摘要表进行截断。截断将将摘要列设置为零,而不是删除行。截断该表也将截断table_io_waits_summary_by_index_usage表。
表table_io_waits_summary_by_index_usage对所有表索引I/O等待事件进行聚合,生成器是wait/io/table/sql/handler工具。分组是根据表索引。
table_io_waits_summary_by_index_usage 表的列几乎与table_io_waits_summary_by_table 表的列相同。唯一的区别是额外的组列INDEX_NAME,它对应于记录的表I/O等待事件时使用的索引名称:
-
一个值为
PRIMARY的索引表示表I/O使用了主索引。 -
一个值为
NULL的索引表示表I/O没有使用索引。 -
插入操作将被计入
INDEX_NAME = NULL。
表table_io_waits_summary_by_index_usage具有以下索引:
-
唯一索引(
OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,INDEX_NAME)
TRUNCATE TABLE 对表I/O摘要表是允许的。它将摘要列重置为零,而不是删除行。这张表也可以通过truncate table_io_waits_summary_by_table 表的truncate操作。DDL操作可能会导致表的索引结构变化,从而导致每个索引的统计信息被重置。
表table_lock_waits_summary_by_table 表对所有表锁等待事件进行聚合,生成由wait/lock/table/sql/handler instrument 生成的锁定事件。该表的分组是根据表进行的。
这张表包含关于内部和外部锁的信息:
-
内部锁对应于SQL层面的锁。这目前由
thr_lock()调用实现。在事件行中,这些锁被区分开来,以便在OPERATION列中,它们具有以下值之一:read normal read with shared locks read high priority read no insert write allow write write concurrent insert write delayed write low priority write normal -
外部锁对应于存储引擎层面的锁。这目前由
handler::external_lock()调用实现。在事件行中,这些锁被区分开来,以便在OPERATION列中,它们具有以下值之一:read external write external
《table_lock_waits_summary_by_table》表具有以下分组列,以指示如何对事件进行聚合:OBJECT_TYPE,OBJECT_SCHEMA和OBJECT_NAME。这些列在events_waits_current表中具有相同的含义。它们标识了该行所属的表。
table_lock_waits_summary_by_table还具有以下汇总列,包含聚合值。正如列描述所示,一些列更为通用,具有与低级别列相同的值的总和。例如,聚合所有锁定的列将总和对应的读写锁定的列。这样,在更高级别的聚合中,可以直接访问,而不需要用户定义的视图来求和低级别列。
-
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT这些列聚合所有锁定操作。它们与对应的
和xxx_READ列相同。xxx_WRITE -
COUNT_READ,SUM_TIMER_READ,MIN_TIMER_READ,AVG_TIMER_READ,MAX_TIMER_READ这些列聚合所有读锁定操作。它们与对应的
,xxx_READ_NORMAL,xxx_READ_WITH_SHARED_LOCKS和xxx_READ_HIGH_PRIORITY列相同。xxx_READ_NO_INSERT -
COUNT_WRITE,SUM_TIMER_WRITE,MIN_TIMER_WRITE,AVG_TIMER_WRITE,MAX_TIMER_WRITE这些列聚合所有写锁定操作。它们与对应的
,xxx_WRITE_ALLOW_WRITE,xxx_WRITE_CONCURRENT_INSERT和xxx_WRITE_LOW_PRIORITY列相同。xxx_WRITE_NORMAL -
COUNT_READ_NORMAL,SUM_TIMER_READ_NORMAL,MIN_TIMER_READ_NORMAL,AVG_TIMER_READ_NORMAL,MAX_TIMER_READ_NORMAL这些列聚合内部读锁定。
-
COUNT_READ_WITH_SHARED_LOCKS,SUM_TIMER_READ_WITH_SHARED_LOCKS,MIN_TIMER_READ_WITH_SHARED_LOCKS,AVG_TIMER_READ_WITH_SHARED_LOCKS,MAX_TIMER_READ_WITH_SHARED_LOCKS这些列聚合内部读锁。
-
COUNT_READ_HIGH_PRIORITY,SUM_TIMER_READ_HIGH_PRIORITY,MIN_TIMER_READ_HIGH_PRIORITY,AVG_TIMER_READ_HIGH_PRIORITY,MAX_TIMER_READ_HIGH_PRIORITY这些列聚合内部读锁。
-
COUNT_READ_NO_INSERT,SUM_TIMER_READ_NO_INSERT,MIN_TIMER_READ_NO_INSERT,AVG_TIMER_READ_NO_INSERT,MAX_TIMER_READ_NO_INSERT这些列聚合内部读锁。
-
COUNT_READ_EXTERNAL,SUM_TIMER_READ_EXTERNAL,MIN_TIMER_READ_EXTERNAL,AVG_TIMER_READ_EXTERNAL,MAX_TIMER_READ_EXTERNAL这些列聚合外部读锁。
-
COUNT_WRITE_ALLOW_WRITE,SUM_TIMER_WRITE_ALLOW_WRITE,MIN_TIMER_WRITE_ALLOW_WRITE,AVG_TIMER_WRITE_ALLOW_WRITE,MAX_TIMER_WRITE_ALLOW_WRITE这些列聚合内部写锁。
-
COUNT_WRITE_CONCURRENT_INSERT,SUM_TIMER_WRITE_CONCURRENT_INSERT,MIN_TIMER_WRITE_CONCURRENT_INSERT,AVG_TIMER_WRITE_CONCURRENT_INSERT,MAX_TIMER_WRITE_CONCURRENT_INSERT这些列聚合内部写锁。
-
COUNT_WRITE_LOW_PRIORITY,SUM_TIMER_WRITE_LOW_PRIORITY,MIN_TIMER_WRITE_LOW_PRIORITY,AVG_TIMER_WRITE_LOW_PRIORITY,MAX_TIMER_WRITE_LOW_PRIORITY这些列聚合内部写锁。
-
COUNT_WRITE_NORMAL,SUM_TIMER_WRITE_NORMAL,MIN_TIMER_WRITE_NORMAL,AVG_TIMER_WRITE_NORMAL,MAX_TIMER_WRITE_NORMAL这些列聚合内部写锁。
-
COUNT_WRITE_EXTERNAL,SUM_TIMER_WRITE_EXTERNAL,MIN_TIMER_WRITE_EXTERNAL,AVG_TIMER_WRITE_EXTERNAL,MAX_TIMER_WRITE_EXTERNAL这些列聚合外部写锁。
表table_lock_waits_summary_by_table有这些索引:
-
唯一索引在(
OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME)
TRUNCATE TABLE 对于锁定表的摘要表是允许的。它将摘要列重置为零,而不是删除行。