性能模式通用表特征
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
用作在数据库或表leval上授予特权的速记方式失败,并显示以下错误:
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_instrumentsTO '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_instrumentsTO 'u2'@'localhost'; Query OK, 0 rows affected (0.02 sec)