Documentation Home
MySQL 8.0 参考手册  / 第 27 章 MySQL 性能模式  /  25.11 性能模式总表特征

25.11 性能模式总表特征

数据库的名称performance_schema是小写的,其中的表名也是如此。查询应以小写形式指定名称。

数据库中有很多表performance_schema是只读的,不能修改:

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权限。

因为只有一组有限的权限适用于 Performance Schema 表,所以尝试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)