MySQL 8.3 Release Notes
性能模式数据库的名称是小写的,同样,数据库中的表名也是小写的。查询应该使用小写指定名称。
性能模式数据库中的许多表都是只读的,不能被修改:
mysql> TRUNCATE TABLE performance_schema.setup_instruments;
ERROR 1683 (HY000): Invalid performance_schema usage.
一些设置表具有可以修改的列,以影响性能模式的操作;一些表也允许插入或删除行。可以使用 TRUNCATE TABLE
来清除收集的事件,例如,具有 events_waits_
前缀的表。
可以使用 TRUNCATE TABLE
来截断汇总表。通常,效果是将汇总列重置为 0 或 NULL
,而不是删除行。这使您可以清除收集的值并重新聚合。例如,在进行运行时配置更改后,这可能很有用。个别汇总表部分中会注明截断行为的例外情况。
权限与其他数据库和表相同:
因为只有有限的一组权限适用于性能模式表,因此尝试使用 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)