• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 性能模式通用表特征

    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_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)