#### 27.12.20.7 文件 I/O 汇总表

[](<>)[](<>)[](<>)[](<>)

性能模式维护文件 I/O 汇总表，汇总有关 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 汇总表都有一个或多个分组列来指示表如何聚合事件。事件名称是指事件工具的名称[`setup_instruments`](performance-schema-setup-instruments-table.html)桌子：

-   [`file_summary_by_event_name`](performance-schema-file-summary-tables.html)有一个`EVENT_NAME`柱子。每行汇总给定事件名称的事件。

-   [`file_summary_by_instance`](performance-schema-file-summary-tables.html)已`文件名`,`EVENT_NAME`， 和`OBJECT_INSTANCE_BEGIN`列。每行汇总给定文件和事件名称的事件。

    每个文件 I/O 汇总表都有以下汇总列，其中包含汇总值。某些列更通用，其值与更细粒度列的值之和相同。通过这种方式，更高级别的聚合可以直接使用，而无需用户定义的视图来汇总较低级别的列。

-   `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`

    这些列聚合所有读取操作，包括`FGETS`, `FGETC`, `弗里德`， 和`读`.

-   `COUNT_WRITE`, `SUM_TIMER_WRITE`, `MIN_TIMER_WRITE`, `AVG_TIMER_WRITE`, `MAX_TIMER_WRITE`, `SUM_NUMBER_OF_BYTES_WRITE`

    这些列聚合所有写操作，包括`FPUTS`, `FPUTC`, `打印文件`, `VFPRINTF`, `FWRITE`， 和`写`.

-   `COUNT_MISC`, `SUM_TIMER_MISC`, `MIN_TIMER_MISC`, `AVG_TIMER_MISC`, `MAX_TIMER_MISC`

    这些列聚合所有其他 I/O 操作，包括`创建`, `删除`, `打开`, `关闭`, `STREAM_OPEN`, `STREAM_CLOSE`, `寻找`, `告诉`, `冲洗`, `统计数据`, `FSTAT`, `尺寸`, `改名`， 和`同步`.这些操作没有字节数。

    文件 I/O 汇总表具有以下索引：

-   [`file_summary_by_event_name`](performance-schema-file-summary-tables.html)：

    -   主键打开 (`EVENT_NAME`)

-   [`file_summary_by_instance`](performance-schema-file-summary-tables.html)：

    -   主键打开 (`OBJECT_INSTANCE_BEGIN`)

    -   索引 (`文件名`)

    -   索引 (`EVENT_NAME`)

[`截断表`](truncate-table.html)允许用于文件 I/O 汇总表。它将汇总列重置为零，而不是删除行。

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