25.12.15.6 文件 I/O 摘要 table

性能架构维护文件 I/O 摘要 table,这些 table 汇总了有关 I/O 操作的信息。

示例文件 I/O 事件摘要信息:

mysql> SELECT * FROM performance_schema.file_summary_by_event_name\G
...
*************************** 2. row ***************************
               EVENT_NAME: wait/io/file/sql/binlog
               COUNT_STAR: 31
           SUM_TIMER_WAIT: 8243784888
           MIN_TIMER_WAIT: 0
           AVG_TIMER_WAIT: 265928484
           MAX_TIMER_WAIT: 6490658832
...
mysql> SELECT * FROM performance_schema.file_summary_by_instance\G
...
*************************** 2. row ***************************
                FILE_NAME: /var/mysql/share/english/errmsg.sys
               EVENT_NAME: wait/io/file/sql/ERRMSG
               EVENT_NAME: wait/io/file/sql/ERRMSG
    OBJECT_INSTANCE_BEGIN: 4686193384
               COUNT_STAR: 5
           SUM_TIMER_WAIT: 13990154448
           MIN_TIMER_WAIT: 26349624
           AVG_TIMER_WAIT: 2798030607
           MAX_TIMER_WAIT: 8150662536
...

每个文件 I/O 摘要 table 都有一个或多个分组列,以指示该 table 如何聚合事件。事件名称是指setup_instrumentstable 中事件工具的名称:

每个文件 I/O 摘要 table 都有以下包含聚合值的摘要列。一些列更通用,其值与更细粒度的列的值之和相同。这样,就可以直接使用较高级别的聚合,而无需将较低级别列加总的用户定义视图。

  • COUNT_STAR , SUM_TIMER_WAIT , MIN_TIMER_WAIT , AVG_TIMER_WAIT , MAX_TIMER_WAIT

这些列汇总了所有 I/O 操作。

  • COUNT_READ , SUM_TIMER_READ , MIN_TIMER_READ , AVG_TIMER_READ , MAX_TIMER_READ , SUM_NUMBER_OF_BYTES_READ

这些列汇总了所有读取操作,包括FGETSFGETCFREADREAD

  • COUNT_WRITE , SUM_TIMER_WRITE , MIN_TIMER_WRITE , AVG_TIMER_WRITE , MAX_TIMER_WRITE , SUM_NUMBER_OF_BYTES_WRITE

这些列汇总了所有写入操作,包括FPUTSFPUTCFPRINTFVFPRINTFFWRITEPWRITE

  • COUNT_MISC , SUM_TIMER_MISC , MIN_TIMER_MISC , AVG_TIMER_MISC , MAX_TIMER_MISC

这些列汇总了所有其他 I/O 操作,包括CREATEDELETEOPENCLOSESTREAM_OPENSTREAM_CLOSESEEKTELLFLUSHSTATFSTATCHSIZERENAMESYNC。这些操作没有字节数。

文件 I/O 摘要 table 允许TRUNCATE TABLE。它将摘要列重置为零,而不是删除行。

MySQL 服务器使用多种技术来缓存从文件中读取的信息,从而避免 I/O 操作,因此您可能希望导致 I/O 事件的语句可能不会。您可能能够通过刷新缓存或重新启动服务器以重置其状态来确保确实发生 I/O。