25.11 性能架构常规 tableFeature

performance_schema数据库的名称是小写字母,其中的 table 名称也是小写字母。查询应以小写形式指定名称。

performance_schema数据库中的许多 table 是只读的,无法修改:

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

一些设置 table 中的列可以修改以影响性能架构操作。有些还允许插入或删除行。允许截断以清除收集的事件,因此TRUNCATE TABLE可以用于包含此类信息的 table,例如以events_waits_开头的 table。

摘要 table 可以用TRUNCATE TABLE截断。通常,效果是将摘要列重置为 0 或NULL,而不是删除行。这使您可以清除收集的值并重新开始聚合。例如,在更改运行时配置之后,这可能会很有用。截断行为的 exceptions 在各个摘要 table 部分中都有说明。

特权与其他数据库和 table 相同:

  • 要从performance_schema个 table 中检索,您必须具有SELECT特权。

  • 要更改那些可以修改的列,您必须具有UPDATE特权。

  • 要截断可以被截断的 table,您必须具有DROP特权。

因为只有有限的一组特权适用于 Performance Schematable,所以尝试使用GRANT ALL作为在数据库或 tableleval 上授予特权的简写会失败,并显示以下错误:

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)