上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
9.7 查询表的增、删、改、查数据量和I/O耗时统计信息
使用schema_table_statistics_with_buffer视图可以查询表的增、删、改、查数据量,I/O耗时,以及在InnoDB缓冲池中占用情况等统计信息,在默认情况下按照增、删、改、查操作的总表I/O延迟时间(执行时间,也可以理解为存在最多I/O争用的表)降序排列。数据来源:performance_schema.table_io_waits_summary_by_table、sys.x$ps_schema_table_statistics_ io、sys.x$innodb_buffer_stats_by_table。另外,该视图在内部使用了辅助视图sys.x$ps_schema_table_statistics_io。
下面是使用schema_table_statistics_with_buffer视图查询的结果集(请自行创建库表,并执行一些DML语句进行造数)。
mysql> select * from schema_table_statistics_with_buffer limit 1\G *************************** 1. row *************************** table_schema: xiaoboluo # 包含table_name字段的表所在的schema名称 table_name: test # 表名 rows_fetched: 1561 # 表读取操作的总数据行数,针对表查询操作 fetch_latency: 2.08 m # 表 select 操作的 I/O 事件的总延迟时间(执行时间),针对表查询操作 rows_inserted: 1159 # 表插入操作的总数据行数,针对表插入操作 insert_latency: 865.33 ms# 表插入操作的I/O事件的延迟时间(执行时间),针对表插入操作 rows_updated: 0 # 表更新操作的总数据行数,针对表更新操作 update_latency: 0 ps # 表更新操作的I/O事件的总延迟时间(执行时间),针对表更新操作 rows_deleted: 0 # 表删除操作的总数据行数,针对表删除操作 delete_latency: 0 ps # 表删除操作的I/O事件的总延迟时间(执行时间),针对表删除操作 io_read_requests: 48 # 表读取操作的总请求次数,针对表.ibd和.frm文件的读I/O操作 io_read: 179.29 KiB # 与表读操作相关的所有文件读取操作的总字节数,针对表.ibd和.frm文件的读I/O操作 io_read_latency: 15.02 ms # 与表读操作相关的所有文件读取操作的总延迟时间(执行时间),针对表.ibd和.frm文件的读I/O操作 io_write_requests: 10 # 表写操作的总请求次数,针对表.ibd和.frm文件的写I/O操作 io_write: 160.00 KiB # 与表写操作相关的所有文件写操作的总字节数,针对表.ibd和.frm文件的写I/O操作 io_write_latency: 76.24 us # 与表写操作相关的所有文件写操作的总延迟时间(执行时间),针对表.ibd和.frm文件的写I/O操作 io_misc_requests: 47 # 与表其他各种混杂操作相关的所有文件的 I/O 请求总次数,针对表.ibd和.frm文件的其他混杂I/O操作 io_misc_latency: 9.47 ms # 与表其他各种混杂操作相关的所有文件的I/O请求的总延迟时间(执行时间),针对表.ibd和.frm文件的其他混杂I/O操作 innodb_buffer_allocated: 112.00 KiB # 当前已分配给表的缓冲池总字节数 innodb_buffer_data: 48.75 KiB # 当前已分配给表的数据部分使用的缓冲池字节总数 innodb_buffer_free: 63.25 KiB # 当前已分配给表的非数据部分使用的缓冲池字节总数(即空闲页所在的字节数,计算公式:innodb_buffer_allocated - innodb_buffer_data) innodb_buffer_pages: 7 # 当前已分配给表的缓冲池总页数 innodb_buffer_pages_hashed: 0 # 当前已分配给表的自适应hash索引页总数 innodb_buffer_pages_old: 0 # 当前已分配给表的旧页总数(位于LRU列表中的旧块子列表中的页数) innodb_buffer_rows_cached: 1162 # 在缓冲池中为表缓存的总数据行数(table_name字段显示的表在缓冲池中缓存了多少行数据) 1 row in set(2.21 sec)