Documentation Home

22.4.3 事件预过滤

预过滤由性能模式完成,具有适用于所有用户的全局效果。预过滤可以应用于事件处理的生产者或消费者阶段:

  • 要在生产者阶段配置预过滤,可以使用几个表:

    • setup_instruments指示可用的仪器。无论其他与生产相关的设置表的内容如何,​​此表中禁用的仪器都不会产生任何事件。根据其他表的内容,允许在此表中启用的工具产生事件。

    • setup_objects控制性能模式是否监视特定的表对象。

    • threads指示是否为每个服务器线程启用监视。

    • setup_actors确定新前台线程的初始监视状态。

  • 要在消费者阶段配置预过滤,请修改 setup_consumers表。这决定了事件发送到的目的地。 setup_consumers也隐含地影响事件的产生。如果给定事件未发送到任何目的地(未被消费),则性能模式不会产生它。

对这些表中的任何一个的修改都会立即影响监控,但有一些例外:

  • 表中部分工具的修改 setup_instruments仅在服务器启动时生效;在运行时更改它们没有效果。这主要影响服务器中的互斥体、条件和 rwlocks,尽管可能有其他工具也是如此。

  • setup_actors表的修改仅影响修改后创建的前台线程,而不影响现有线程。

当您更改监控配置时,性能模式不会刷新历史表。已经收集的事件保留在当前事件和历史表中,直到被更新的事件取代。如果禁用仪器,您可能需要等待一段时间,然后它们的事件才会被感兴趣的新事件所取代。或者,用于 TRUNCATE TABLE清空历史表。

进行检测更改后,您可能希望截断汇总表。通常,效果是将汇总列重置为 0 或NULL,而不是删除行。这使您能够清除收集的值并重新启动聚合。这可能很有用,例如,在您更改了运行时配置之后。此截断行为的例外情况在各个汇总表部分中注明。

以下部分描述了如何使用特定的表来控制 Performance Schema 预过滤。