Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  MySQL Performance Schema  /  Performance Schema General Table Characteristics

29.11 性能模式通用表特征

性能模式数据库的名称是小写的,同样,数据库中的表名也是小写的。查询应该使用小写指定名称。

性能模式数据库中的许多表都是只读的,不能被修改:

mysql> TRUNCATE TABLE performance_schema.setup_instruments;
ERROR 1683 (HY000): Invalid performance_schema usage.

一些设置表具有可以修改的列,以影响性能模式的操作;一些表也允许插入或删除行。可以使用 TRUNCATE TABLE 来清除收集的事件,例如,具有 events_waits_ 前缀的表。

可以使用 TRUNCATE TABLE 来截断汇总表。通常,效果是将汇总列重置为 0 或 NULL,而不是删除行。这使您可以清除收集的值并重新聚合。例如,在进行运行时配置更改后,这可能很有用。个别汇总表部分中会注明截断行为的例外情况。

权限与其他数据库和表相同:

  • 要从 performance_schema 表中检索数据,必须拥有 SELECT 权限。

  • 要修改可以修改的列,必须拥有 UPDATE 权限。

  • 要截断可以截断的表,必须拥有 DROP 权限。

因为只有有限的一组权限适用于性能模式表,因此尝试使用 GRANT ALL 作为授予权限的简写方式将失败并出现错误:

mysql> GRANT ALL ON performance_schema.*
       TO 'u1'@'localhost';
ERROR 1044 (42000): Access denied for user 'root'@'localhost'
to database 'performance_schema'
mysql> GRANT ALL ON performance_schema.setup_instruments
       TO 'u2'@'localhost';
ERROR 1044 (42000): Access denied for user 'root'@'localhost'
to database 'performance_schema'

相反,授予确切的权限:

mysql> GRANT SELECT ON performance_schema.*
       TO 'u1'@'localhost';
Query OK, 0 rows affected (0.03 sec)

mysql> GRANT SELECT, UPDATE ON performance_schema.setup_instruments
       TO 'u2'@'localhost';
Query OK, 0 rows affected (0.02 sec)