您可以将 sys
架构设置为默认架构,以便不需要使用架构名称限定对象引用:
mysql> USE sys;
Database changed
mysql> SELECT * FROM version;
+-------------+---------------+
| sys_version | mysql_version |
+-------------+---------------+
| 2.1.1 | 8.0.26-debug |
+-------------+---------------+
(The version
视图显示 sys
架构和 MySQL 服务器版本。)
要访问 sys
架构对象,而当前默认架构不同(或只是为了明确),请使用架构名称限定对象引用:
mysql> SELECT * FROM sys.version;
+-------------+---------------+
| sys_version | mysql_version |
+-------------+---------------+
| 2.1.1 | 8.0.26-debug |
+-------------+---------------+
The sys
架构包含许多视图,这些视图以不同的方式汇总性能架构表。这些视图大多成对出现,其中一对成员的名称与另一对成员相同,但加上 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 |
+------------+-------+------------+
The 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$
视图之间差异的更多信息,请参阅 第 30.4.3 节,“sys 架构 Views”。
要检查 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 8.0.18 之前,源代码维护在一个单独的分发中,来自 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