The Performance Schema maintains file I/O summary tables that aggregate information about I/O operations.
Example file I/O event summary information:
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
...
Each file I/O summary table has one or more grouping columns
to indicate how the table aggregates events. Event names refer
to names of event instruments in the
setup_instruments
table:
file_summary_by_event_name
has anEVENT_NAME
column. Each row summarizes events for a given event name.file_summary_by_instance
hasFILE_NAME
,EVENT_NAME
, andOBJECT_INSTANCE_BEGIN
columns. Each row summarizes events for a given file and event name.
Each file I/O summary table has the following summary columns containing aggregated values. Some columns are more general and have values that are the same as the sum of the values of more fine-grained columns. In this way, aggregations at higher levels are available directly without the need for user-defined views that sum lower-level columns.
COUNT_STAR
,SUM_TIMER_WAIT
,MIN_TIMER_WAIT
,AVG_TIMER_WAIT
,MAX_TIMER_WAIT
These columns aggregate all I/O operations.
COUNT_READ
,SUM_TIMER_READ
,MIN_TIMER_READ
,AVG_TIMER_READ
,MAX_TIMER_READ
,SUM_NUMBER_OF_BYTES_READ
These columns aggregate all read operations, including
FGETS
,FGETC
,FREAD
, andREAD
.COUNT_WRITE
,SUM_TIMER_WRITE
,MIN_TIMER_WRITE
,AVG_TIMER_WRITE
,MAX_TIMER_WRITE
,SUM_NUMBER_OF_BYTES_WRITE
These columns aggregate all write operations, including
FPUTS
,FPUTC
,FPRINTF
,VFPRINTF
,FWRITE
, andPWRITE
.COUNT_MISC
,SUM_TIMER_MISC
,MIN_TIMER_MISC
,AVG_TIMER_MISC
,MAX_TIMER_MISC
These columns aggregate all other I/O operations, including
CREATE
,DELETE
,OPEN
,CLOSE
,STREAM_OPEN
,STREAM_CLOSE
,SEEK
,TELL
,FLUSH
,STAT
,FSTAT
,CHSIZE
,RENAME
, andSYNC
. There are no byte counts for these operations.
TRUNCATE TABLE
is permitted for
file I/O summary tables. It resets the summary columns to zero
rather than removing rows.
The MySQL server uses several techniques to avoid I/O operations by caching information read from files, so it is possible that statements you might expect to result in I/O events do not do so. You may be able to ensure that I/O does occur by flushing caches or restarting the server to reset its state.