当前位置:Gxlcms > 数据库问题 > mysql 5.7新数据库sys解析(一)

mysql 5.7新数据库sys解析(一)

时间:2021-07-01 10:21:17 帮助过:20人阅读

mysql5.7增加了sys 系统数据库,通过这个库可以快速的了解系统的元数据信息 这个库确实可以方便DBA发现数据库的很多信息,解决性能瓶颈都提供了巨大帮助   这个库在mysql5.7中是默认存在的,在mysql5.6版本以上可以手动导入,数据库包请在github自行查找   这个库包括了哪些内容? 这个库是通过视图的形式把information_schema 和performance_schema结合起来,查询出更加令人容易理解的数据 存储过程可以可以执行一些性能方面的配置,也可以得到一些性能诊断报告内容 存储函数可以查询一些性能信息   分析每个视图和表之前先说明一下:关于带不带x$,去掉x$同名的视图他们的数据是相同的,区别在于不带x$的单位更加符合直接阅读经过了转换,而带x$是为了某些工具存在而使用的原始单位(多数应该是mysql默认的)   下面就结合mysql官方手册来详细分析sys库
1.表      1.1 sys_config 表         这是在这个系统库上存在的唯一一个表了         先看看表结构
CREATE TABLE `sys_config` (   `variable` varchar(128) NOT NULL,   `value` varchar(128) DEFAULT NULL,   `set_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,   `set_by` varchar(128) DEFAULT NULL,   PRIMARY KEY (`variable`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

        variable 配置选项名称

        value     配置选项值         set_time 该行配置修改的时间         set_by     该行配置信息修改者,如果从被安装没有修改过,那么这个数据应该为NULL       表中默认数据为
variable     value     set_time     set_by
diagnostics.allow_i_s_tables     OFF    2015-11-20 16:04:38      root@localhost
diagnostics.include_raw     OFF    2015-11-20 16:04:38      root@localhost
statement_performance_analyzer.limit    100   2015-11-20 16:04:38       root@localhost
statement_performance_analyzer.view    2015-11-20 16:04:38     root@localhost
statement_truncate_len     64     2016-01-22 17:00:16         root@localhost
      以上值的会话变量为@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‘; SET @sys.debug = NULL; 具体内容请参考官方文档,此处不做介绍   关于这个表有两个触发器 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 stage event发生的总数 • total_latency stage event总的延迟时间 • avg_latency stage event平均延迟时间     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   当前数据库缓存的行数   2.8 The innodb_buffer_stats_by_table 这个表是通过每个表innodb引擎的innodb缓存
• object_schema 数据库名称 • object_name 表名称 • allocated 分配给表的总字节数 • data 分配该表的数据字节数 • pages 分配给表的页数 • pages_hashed 分配给表的hash页数 • pages_old 分配给表的旧页数 • rows_cached 表的行缓存数

 

mysql 5.7新数据库sys解析(一)

标签:

人气教程排行