MySQL 8.4 Release Notes
30.2 使用 sys Schema
您可以将sys
架构设置为默认架构,从而不需要在对象引用中指定架构名称:
Press CTRL+C to copymysql> USE sys; Database changed mysql> SELECT * FROM version; +-------------+---------------+ | sys_version | mysql_version | +-------------+---------------+ | 2.1.1 | 8.4.0-tr | +-------------+---------------+
(The version
视图显示sys
架构和MySQL服务器版本。)
要访问sys
架构对象,而不是使用默认架构(或只是为了明确),请使用架构名称来引用对象:
Press CTRL+C to copymysql> 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转换为更易读的值(带单位);
Press CTRL+C to copymysql> 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值:
Press CTRL+C to copymysql> 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()
函数的定义,请使用这些语句:
Press CTRL+C to copymysql> SHOW CREATE VIEW sys.session; mysql> SHOW CREATE FUNCTION sys.format_bytes;
然而,这些语句将显示定义的输出形式不太友好。要查看对象定义的更易读格式,请访问.sql文件,位于MySQL源代码分发中的scripts/sys_schema目录下。
mysqldump 不会默认备份sys
架构。要生成备份文件,可以使用以下命令在命令行中指定架构名称:
Press CTRL+C to copymysqldump --databases --routines sys > sys_dump.sql
要从备份文件重新安装架构,请使用以下命令:
Press CTRL+C to copymysql < sys_dump.sql