以下部分描述表I/O和锁等待摘要表:
-
table_io_waits_summary_by_index_usage:每个索引的表I/O等待 -
table_io_waits_summary_by_table:每个表的表I/O等待 -
table_lock_waits_summary_by_table:每个表的表锁等待
该 table_io_waits_summary_by_table 表聚合了所有表I/O等待事件,由 wait/io/table/sql/handler 仪器生成。分组是按表。
该 table_io_waits_summary_by_table 表具有以下分组列,以指示表如何聚合事件:OBJECT_TYPE、OBJECT_SCHEMA 和 OBJECT_NAME。这些列的含义与 events_waits_current 表中的含义相同。它们标识了该行应用的表。
table_io_waits_summary_by_table 具有以下汇总列,包含聚合值。如列描述所示,一些列是更general的,具有与更fine-grained列相同的值。例如,聚合所有写入的列持有对应的插入、更新和删除列的总和。在这种方式下,高级别的聚合直接可用,无需用户定义视图来总和低级别列。
-
COUNT_STAR、SUM_TIMER_WAIT、MIN_TIMER_WAIT、AVG_TIMER_WAIT、MAX_TIMER_WAIT这些列聚合所有I/O操作。它们是对应的
和xxx_READ列的总和。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这些列聚合所有删除操作。
The table_io_waits_summary_by_table 表具有以下索引:
-
唯一索引(
OBJECT_TYPE、OBJECT_SCHEMA、OBJECT_NAME)
TRUNCATE TABLE 在表 I/O 摘要表中是允许的。它将摘要列重置为零,而不是删除行。截断该表也将截断 table_io_waits_summary_by_index_usage 表。
The table_io_waits_summary_by_index_usage 表聚合所有表索引 I/O 等待事件,如由 wait/io/table/sql/handler 仪表生成。分组是按表索引。
The columns of 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。
The table_io_waits_summary_by_index_usage 表具有以下索引:
-
唯一索引(
OBJECT_TYPE、OBJECT_SCHEMA、OBJECT_NAME、INDEX_NAME)
TRUNCATE TABLE 在表 I/O 摘要表中是允许的。它将摘要列重置为零,而不是删除行。该表也将被 table_io_waits_summary_by_table 表的截断所截断。DDL 操作更改表的索引结构可能会重置每个索引的统计信息。
The table_lock_waits_summary_by_table 表聚合所有表锁等待事件,如由 wait/lock/table/sql/handler 仪表生成。分组是按表。
该表包含内部锁和外部锁的信息:
-
内部锁对应于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 在表锁摘要表中是允许的。它将摘要列重置为零,而不是删除行。