### 27.4.3 事件预过滤

预过滤由 Performance Schema 完成，具有适用于所有用户的全局效果。预过滤可以应用于事件处理的生产者或消费者阶段：

-   要在生产者阶段配置预过滤，可以使用几个表：

    -   [`setup_instruments`](performance-schema-setup-instruments-table.html)指示可用的工具。无论其他与生产相关的设置表的内容如何，​​在此表中禁用的仪器都不会产生任何事件。允许在此表中启用的工具产生事件，但受其他表的内容限制。

    -   [`设置对象`](performance-schema-setup-objects-table.html)控制性能模式是否监视特定表和存储的程序对象。

    -   [`线程`](performance-schema-threads-table.html)指示是否为每个服务器线程启用监视。

    -   [`setup_actors`](performance-schema-setup-actors-table.html)确定新前台线程的初始监视状态。

-   要在消费者阶段配置预过滤，请修改[`setup_consumers`](performance-schema-setup-consumers-table.html)桌子。这决定了事件被发送到的目的地。[`setup_consumers`](performance-schema-setup-consumers-table.html)也隐含地影响事件产生。如果给定的事件没有发送到任何目的地（也就是说，它永远不会被消费），则性能模式不会生成它。

    对这些表中的任何一个的修改都会立即影响监控，但对表的修改除外。[`setup_actors`](performance-schema-setup-actors-table.html)表只影响修改后创建的前台线程，不影响现有线程。

    当您更改监控配置时，性能模式不会刷新历史表。已收集的事件保留在当前事件和历史表中，直到被更新的事件取代。如果您禁用仪器，您可能需要等待一段时间，然后它们的事件才会被新的感兴趣的事件取代。或者，使用[`截断表`](truncate-table.html)清空历史表。

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

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