MySQL sys Schema

MySQL sys Schema

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 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()缩短路径名。

posted @ 2018-08-20 14:43  DB-Engineer  阅读(1284)  评论(0编辑  收藏  举报