Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.20.8 表 I/O 和锁等待摘要表

以下部分描述了表 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_TYPEOBJECT_SCHEMAOBJECT_NAME。这些列在 events_waits_current 表中具有相同的含义。它们标识了该行适用的表。

table_io_waits_summary_by_table 表具有以下汇总列,包含聚合值。正如列描述所示,一些列是更通用的,具有与相应的插入、更新和删除列相同的值。例如,聚合所有写入的列持有相应的插入、更新和删除列的总和。在这种方式下,高级聚合可以直接可用,而不需要用户定义的视图来求和低级列。

  • COUNT_STARSUM_TIMER_WAITMIN_TIMER_WAITAVG_TIMER_WAITMAX_TIMER_WAIT

    这些列聚合所有 I/O 操作。它们与相应的 xxx_READxxx_WRITE 列相同,为所有 I/O 操作的总和。

  • 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_TYPEOBJECT_SCHEMAOBJECT_NAMEINDEX_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_TYPEOBJECT_SCHEMAOBJECT_NAME。这些列在events_waits_current表中具有相同的含义。它们标识了该行所属的表。

table_lock_waits_summary_by_table还具有以下汇总列,包含聚合值。正如列描述所示,一些列更为通用,具有与低级别列相同的值的总和。例如,聚合所有锁定的列将总和对应的读写锁定的列。这样,在更高级别的聚合中,可以直接访问,而不需要用户定义的视图来求和低级别列。

  • COUNT_STARSUM_TIMER_WAITMIN_TIMER_WAITAVG_TIMER_WAITMAX_TIMER_WAIT

    这些列聚合所有锁定操作。它们与对应的xxx_READxxx_WRITE列相同。

  • COUNT_READSUM_TIMER_READMIN_TIMER_READAVG_TIMER_READMAX_TIMER_READ

    这些列聚合所有读锁定操作。它们与对应的xxx_READ_NORMALxxx_READ_WITH_SHARED_LOCKSxxx_READ_HIGH_PRIORITYxxx_READ_NO_INSERT列相同。

  • COUNT_WRITESUM_TIMER_WRITEMIN_TIMER_WRITEAVG_TIMER_WRITEMAX_TIMER_WRITE

    这些列聚合所有写锁定操作。它们与对应的xxx_WRITE_ALLOW_WRITExxx_WRITE_CONCURRENT_INSERTxxx_WRITE_LOW_PRIORITYxxx_WRITE_NORMAL列相同。

  • COUNT_READ_NORMALSUM_TIMER_READ_NORMALMIN_TIMER_READ_NORMALAVG_TIMER_READ_NORMALMAX_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 对于锁定表的摘要表是允许的。它将摘要列重置为零,而不是删除行。