预过滤由性能模式完成,具有适用于所有用户的全局效果。预过滤可以应用于事件处理的生产者或消费者阶段:
要在生产者阶段配置预过滤,可以使用几个表:
setup_instruments
指示可用的仪器。无论其他与生产相关的设置表的内容如何,此表中禁用的仪器都不会产生任何事件。根据其他表的内容,允许在此表中启用的工具产生事件。setup_objects
控制性能模式是否监视特定的表和存储的程序对象。threads
指示是否为每个服务器线程启用监视。setup_actors
确定新前台线程的初始监视状态。
要在消费者阶段配置预过滤,请修改
setup_consumers
表。这决定了事件发送到的目的地。setup_consumers
也隐含地影响事件的产生。如果一个给定的事件没有被发送到任何目的地(也就是说,它永远不会被消费),性能模式就不会产生它。
对这些表中的任何一个的修改都会立即影响监视,但对
setup_actors
表的修改只影响修改后创建的前台线程,而不影响现有线程。
当您更改监控配置时,性能模式不会刷新历史表。已经收集的事件保留在当前事件和历史表中,直到被更新的事件取代。如果禁用仪器,您可能需要等待一段时间,然后它们的事件才会被感兴趣的新事件所取代。或者,用于
TRUNCATE TABLE
清空历史表。
进行检测更改后,您可能希望截断汇总表。通常,效果是将汇总列重置为 0 或NULL
,而不是删除行。这使您能够清除收集的值并重新启动聚合。这可能很有用,例如,在您更改了运行时配置之后。此截断行为的例外情况在各个汇总表部分中注明。
以下部分描述了如何使用特定的表来控制 Performance Schema 预过滤。