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