26.2 使用 sys 模式
您可以将sys模式设置为默认模式,以便对其引用的对象无需使用模式名称进行限定:
mysql> USE sys;
Database changed
mysql> SELECT * FROM version;
+-------------+------------------+
| sys_version | mysql_version |
+-------------+------------------+
| 1.5.1 | 5.7.24-debug-log |
+-------------+------------------+
(version视图显示sys模式和 MySQL 服务器版本。)
要在其他模式为默认模式(或简单地说是明确的)下访问sys模式对象,请使用模式名称限定对象引用:
mysql> SELECT * FROM sys.version;
+-------------+------------------+
| sys_version | mysql_version |
+-------------+------------------+
| 1.5.1 | 5.7.24-debug-log |
+-------------+------------------+
sys
模式包含许多视图,这些视图以各种方式总结了性能模式 table。这些视图中的大多数成对出现,因此该对中的一个成员与另一个成员具有相同的名称,外加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$
视图之间差异的更多信息,请参见第 26.4.3 节“ sys 模式视图”。
要检查sys模式对象定义,请使用适当的SHOW语句或INFORMATION_SCHEMA查询。例如,要检查session视图和format_bytes()函数的定义,请使用以下语句:
mysql> SHOW CREATE VIEW sys.session;
mysql> SHOW CREATE FUNCTION sys.format_bytes;
但是,这些语句以相对无格式的形式显示定义。要以更具可读性的格式查看对象定义,请访问 MySQL 源代码发行版中scripts/sys_schema
下的各个.sql
文件。在 MySQL 5.7.28 之前,源代码保存在单独的发行版中,该发行版可从sys模式开发网站https://github.com/mysql/mysql-sys获得。
默认情况下,mysqldump和mysqlpump都不会转储sys模式。要生成转储文件,请使用以下任一命令在命令行上显式命名sys模式:
mysqldump --databases --routines sys > sys_dump.sql
mysqlpump sys > sys_dump.sql
要从转储文件重新安装架构,请使用以下命令:
mysql < sys_dump.sql