MySQL 8.4 Release Notes
30.2 使用 sys Schema
您可以将sys
架构设置为默认架构,从而不需要在对象引用中指定架构名称:
mysql> USE sys;
Database changed
mysql> SELECT * FROM version;
+-------------+---------------+
| sys_version | mysql_version |
+-------------+---------------+
| 2.1.1 | 8.4.0-tr |
+-------------+---------------+
(The version
视图显示sys
架构和MySQL服务器版本。)
要访问sys
架构对象,而不是使用默认架构(或只是为了明确),请使用架构名称来引用对象:
mysql> SELECT * FROM sys.version;
+-------------+---------------+
| sys_version | mysql_version |
+-------------+---------------+
| 2.1.1 | 8.4.0-tr |
+-------------+---------------+
sys架构中包含许多将Performance Schema表格摘要的视图。这些视图大多数以对的形式出现,其中一个成员的名称与另一个成员相同,但前面加上了x$
前缀。例如,host_summary_by_file_io
视图将文件I/O根据主机分组,并将延迟从-picosecond转换为更易读的值(带单位);
mysql> SELECT * FROM sys.host_summary_by_file_io;
+------------+-------+------------+
| host | ios | io_latency |
+------------+-------+------------+
| localhost | 67570 | 5.38 s |
| background | 3468 | 4.18 s |
+------------+-------+------------+
sys架构中的x$host_summary_by_file_io
视图将同样的数据进行摘要,但将延迟显示为未格式化的picosecond值:
mysql> SELECT * FROM sys.x$host_summary_by_file_io;
+------------+-------+---------------+
| host | ios | io_latency |
+------------+-------+---------------+
| localhost | 67574 | 5380678125144 |
| background | 3474 | 4758696829416 |
+------------+-------+---------------+
没有x$
前缀的视图旨在为用户提供易于阅读的输出,而x$
前缀的视图旨在为其他工具提供原始数据。关于非x$
和x$
视图的差异的更多信息,请参阅Section 30.4.3, “sys Schema Views”。
要查看sys
架构对象定义,请使用适当的SHOW
语句或INFORMATION_SCHEMA
查询。例如,要查看session
视图和format_bytes()
函数的定义,请使用这些语句:
mysql> SHOW CREATE VIEW sys.session;
mysql> SHOW CREATE FUNCTION sys.format_bytes;
然而,这些语句将显示定义的输出形式不太友好。要查看对象定义的更易读格式,请访问.sql文件,位于MySQL源代码分发中的scripts/sys_schema目录下。
mysqldump 不会默认备份sys
架构。要生成备份文件,可以使用以下命令在命令行中指定架构名称:
mysqldump --databases --routines sys > sys_dump.sql
要从备份文件重新安装架构,请使用以下命令:
mysql < sys_dump.sql