文件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表中事件工具的名称:
file_summary_by_event_name有EVENT_NAME专栏。每行总结了给定事件名称的事件。file_summary_by_instance有FILE_NAME,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,FREAD,和READ。COUNT_WRITE,SUM_TIMER_WRITE,MIN_TIMER_WRITE,AVG_TIMER_WRITE,MAX_TIMER_WRITE,SUM_NUMBER_OF_BYTES_WRITE这些列聚集所有的写操作,其中包括
FPUTS,FPUTC,FPRINTF,VFPRINTF,FWRITE,和PWRITE。COUNT_MISC,SUM_TIMER_MISC,MIN_TIMER_MISC,AVG_TIMER_MISC,MAX_TIMER_MISC这些列聚集所有其他I / O操作,包括
CREATE,DELETE,OPEN,CLOSE,STREAM_OPEN,STREAM_CLOSE,SEEK,TELL,FLUSH,STAT,FSTAT,CHSIZE,RENAME,和SYNC。这些操作没有字节数。
文件I / O摘要表具有以下索引:
file_summary_by_event_name:- (
EVENT_NAME)上的主键
- (
file_summary_by_instance:- (
OBJECT_INSTANCE_BEGIN)上的主键 - 在(
FILE_NAME)上的索引 - 在(
EVENT_NAME)上的索引
- (
TRUNCATE TABLE允许用于文件I / O摘要表。它将摘要列重置为零,而不是删除行。
MySQL服务器通过缓存从文件中读取的信息来避免I / O操作,因此使用了多种技术,因此您可能希望导致I / O事件的语句可能不会。您可能能够通过刷新缓存或重新启动服务器以重置其状态来确保确实发生I / O。
