MySQL sys Schema
- 使用sys Schema的先决条件
- 使用sys Schema
- sys Schema Progress Reporting
- sys Schema Object Reference
MySQL 5.7.7及更高版本包括sys schema,这是一组帮助DBA和开发人员解释Performance schema收集的数据的对象。 sys schema对象可用于典型的调优和诊断用例。 此schema中的对象包括:
- 将Performance Schema数据汇总为更易于理解的形式的视图。
- 执行诸如 Performance Schema 配置和生成诊断报告等操作的存储过程。
- 存储函数,用于查询 Performance Schema 配置并提供格式化服务。
在新安装MySQL实例时,如果将mysqld
与--initialize
或--initialize-insecure
选项一起使用,则在数据目录初始化期间默认安装sys schema。如果不需要,可以在初始化后手动删除sys schema。
在升级MySQL时,mysql_upgrade会安装sys schema(如果未安装),否则将其升级到当前版本。如果不想安装或升级,可以使用:mysql_upgrade
选项--skip-sys-schema
。
如果存在sys schema但没有version
视图,mysql_upgrade会返回错误,前提是缺少此视图表示用户创建的sys schema。要在这种情况下进行升级,请先删除或重命名现有的sys schema。
从MySQL 5.7.9开始,sys schema对象的DEFINER为’mysql.sys’@’localhost’。 (在MySQL 5.7.9之前,DEFINER是’root’@’localhost’。)使用专用的mysql.sys
帐户可以避免DBA重命名或删除root帐户时出现的问题。
以下部分描述了sys schema视图。
sys模式包含许多视图,这些视图以各种方式汇总了Performance Schema表。 这些视图中的大多数成对出现,使得该对中的一个成员具有与另一个成员相同的名称,加上x$前缀。 例如,host_summary_by_file_io视图汇总了按主机分组的文件I/O,并显示从皮秒转换为更可读的值(带单位)的延迟;
mysql> SELECT * FROM sys.host_summary_by_file_io;
+------------+-------+------------+
| host | ios | io_latency |
+------------+-------+------------+
| localhost | 67570 | 5.38 s |
| background | 3468 | 4.18 s |
+------------+-------+------------+
x$host_summary_by_file_io视图汇总了相同的数据,但显示了未格式化的皮秒延迟:
mysql> SELECT * FROM sys.x$host_summary_by_file_io;
+------------+-------+---------------+
| host | ios | io_latency |
+------------+-------+---------------+
| localhost | 67574 | 5380678125144 |
| background | 3474 | 4758696829416 |
+------------+-------+---------------+
没有x$
前缀的视图旨在提供更加用户友好且更易于阅读的输出。 带有x$
前缀的视图以原始形式显示相同的值,更适合与对数据执行自己处理的其他工具一起使用。
没有x$
前缀的视图在这些方面与相应的x$
视图不同:
- 字节值使用
format_bytes()
以大小单位格式化。 - 使用
format_time()
以时间单位格式化时间值。 - 使用
format_statement()
将SQL语句截断为最大显示宽度。 - 使用
format_path()
缩短路径名。