分析每个视图和表之前先说明一下:关于带不带x$,去掉x$同名的视图他们的数据是相同的,区别在于不带x$的单位更加符合直接阅读经过了转换,而带x$是为了某些工具存在而使用的原始单位(多数应该是mysql默认的)
以上值的会话变量为@sys.+表中variable字段,譬如:@sys.statement_truncate_len
可以set @sys.statement_truncate_len = 32 临时改变值,在会话中会一直使用这个值,如果想要恢复使用表的默认值,只需要将这个会话值设置为null;set @sys.statement_truncate_len = null;
diagnostics.allow_i_s_tables
diagnostics.include_raw
这两个值默认为OFF ,前者如果开启表示允许diagnostics() 存储过程执行扫描information_schema.tables 表,如果表很多,那么可能会很耗性能,后者开启将会从metrics 视图输出未加工处理的数据 。diagnostics() 具体内容见下面对diagnostics()的解释。
statement_performance_analyzer.limit
视图在没有加limit限制时,返回的最大行数
statement_performance_analyzer.view
(略)
以上参数为mysql5.7.9加入
statement_truncate_len
通过format_statement()函数返回值的最大长度
这个表非默认选项还有一个@sys.debug参数
可以手动加入
INSERT INTO sys_config (variable, value) VALUES(‘debug‘, ‘ON‘);
UPDATE sys_config SET value = ‘OFF‘ WHERE variable = ‘debug‘;
具体内容请参考官方文档,此处不做介绍
关于这个表有两个触发器
1.1.1 sys_config_insert_set_user触发器
如果加入新行通过insert语句,那么这个触发器会把set_by列设置为当前操作者
1.1.2 sys_config_update_set_user触发器
如果加入新行通过update语句,那么这个触发器会把set_by列设置为当前操作者
2.视图
以下部分只介绍不包含x$的视图内容
2.1 host_summary (主机概要)
有如下列:
? host
监听连接过的主机
? statements
当前主机执行的语句总数
? statement_latency
语句等待时间(延迟时间)
? statement_avg_latency
执行语句平均延迟时间
? table_scans
表扫描次数
? file_ios
io时间总数
? file_io_latency
文件io延迟
? current_connections
当前连接数
? total_connections
总链接数
? unique_users
该主机的唯一用户数
? current_memory
当前账户分配的内存
? total_memory_allocated
该主机分配的内存总数
2.2 The host_summary_by_file_io_type
?host
主机
?event_name
IO事件名称
?total
该主机发生的事件
?total_latency
该主机发生IO事件总延迟时间
?max_latency
该主机IO事件中最大的延迟时间
2.3 The host_summary_by_file_io
?host
主机
?ios
IO事件总数
?io_latency
IO总的延迟时间
2.4 The host_summary_by_stages
? host
主机
? event_name
stage event名称
? total
? total_latency
? avg_latency
2.5 The host_summary_by_statement_latency
? host
主机
? total
这个主机的语句总数
? total_latency
这个主机总的延迟时间
? max_latency
主机最大的延迟时间
? lock_latency
等待锁的锁延迟时间
? rows_sent
该主机通过语句返回的总行数
? rows_examined
在存储引擎上通过语句返回的行数
? rows_affected
该主机通过语句影响的总行数
? full_scans
全表扫描的语句总数
2.6 The host_summary_by_statement_type
? host
主机
? statement
最后的语句事件名称
? total
sql语句总数
? total_latency
sql语句总延迟数
? max_latency
最大的sql语句延迟数
? lock_latency
锁延迟总数
? rows_sent
语句返回的行总数
? rows_examined
通过存储引擎的sql语句的读取的总行数
? rows_affected
语句影响的总行数
? full_scans
全表扫描的语句事件总数
2.7 The innodb_buffer_stats_by_schema
这个表是通过数据库统计innodb引擎的innodb缓存
? object_schema
数据库名称
? allocated
分配给当前数据库的总的字节数
? data
分配给当前数据库的数据字节数
? pages
分配给当前数据库的总页数
? pages_hashed
分配给当前数据库的hash页数
? pages_old
分配给当前数据库的旧页数
? rows_cached
当前数据库缓存的行数