• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 通过仪器进行预过滤

    setup_instruments表列出了可用的工具:

    mysql> SELECT NAME, ENABLED, TIMED
           FROM performance_schema.setup_instruments;
    +---------------------------------------------------	+---------	+-------	+
    | NAME	| ENABLED	| TIMED	|
    +---------------------------------------------------	+---------	+-------	+
    ...
    | stage/sql/end	| NO	| NO	|
    | stage/sql/executing	| NO	| NO	|
    | stage/sql/init	| NO	| NO	|
    | stage/sql/insert	| NO	| NO	|
    ...
    | statement/sql/load	| YES	| YES	|
    | statement/sql/grant	| YES	| YES	|
    | statement/sql/check	| YES	| YES	|
    | statement/sql/flush	| YES	| YES	|
    ...
    | wait/synch/mutex/sql/LOCK_global_read_lock	| YES	| YES	|
    | wait/synch/mutex/sql/LOCK_global_system_variables	| YES	| YES	|
    | wait/synch/mutex/sql/LOCK_lock_db	| YES	| YES	|
    | wait/synch/mutex/sql/LOCK_manager	| YES	| YES	|
    ...
    | wait/synch/rwlock/sql/LOCK_grant	| YES	| YES	|
    | wait/synch/rwlock/sql/LOGGER::LOCK_logger	| YES	| YES	|
    | wait/synch/rwlock/sql/LOCK_sys_init_connect	| YES	| YES	|
    | wait/synch/rwlock/sql/LOCK_sys_init_slave	| YES	| YES	|
    ...
    | wait/io/file/sql/binlog	| YES	| YES	|
    | wait/io/file/sql/binlog_index	| YES	| YES	|
    | wait/io/file/sql/casetest	| YES	| YES	|
    | wait/io/file/sql/dbopt	| YES	| YES	|
    ...
    

    要控制是否启用了仪器,请将其ENABLED列设置为YESNO。要配置是否收集已启用仪器的计时信息,请将其TIMED值设置为YESNO。设置TIMED列会影响性能模式表的内容,如“性能模式事件计时”中所述。

    对大多数setup_instruments行的修改会立即影响监视。对于某些仪器,修改仅在服务器启动时有效。在运行时更改它们无效。这可能主要影响服务器中的互斥锁,条件和rwlock,尽管可能存在其他适用于此的工具。

    setup_instruments表提供了对事件产生的最基本控制形式。为了根据要监视的对象或线程的类型进一步细化事件产生,可以使用“事件预过滤”中所述的其他表。

    以下示例说明了setup_instruments表上可能的操作。这些更改与其他预过滤操作一样,会影响所有用户。其中一些查询使用LIKE运算符和模式匹配工具名称。有关指定模式以选择工具的更多信息,请参见“为过滤操作命名工具或使用者”。

    • 禁用所有仪器:

      UPDATE performance_schema.setup_instruments
      SET ENABLED = 'NO';
      

      现在将不会收集任何事件。

    • 禁用所有文件工具,将它们添加到当前禁用的工具集中:

      UPDATE performance_schema.setup_instruments
      SET ENABLED = 'NO'
      WHERE NAME LIKE 'wait/io/file/%';
      
    • 仅禁用文件工具,启用所有其他工具:

      UPDATE performance_schema.setup_instruments
      SET ENABLED = IF(NAME LIKE 'wait/io/file/%', 'NO', 'YES');
      
    • 启用mysys库中除那些工具外的所有工具:

      UPDATE performance_schema.setup_instruments
      SET ENABLED = CASE WHEN NAME LIKE '%/mysys/%' THEN 'YES' ELSE 'NO' END;
      
    • 禁用特定的仪器:

      UPDATE performance_schema.setup_instruments
      SET ENABLED = 'NO'
      WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
      
    • 要切换工具的状态,请“翻转”其ENABLED值:

      UPDATE performance_schema.setup_instruments
      SET ENABLED = IF(ENABLED = 'YES', 'NO', 'YES')
      WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
      
    • 禁用所有事件的计时:

      UPDATE performance_schema.setup_instruments
      SET TIMED = 'NO';