以下部分描述表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
在表锁摘要表中是允许的。它将摘要列重置为零,而不是删除行。