5.7用户预过滤

setup_consumers下表列出了可用的消费者类型和已启用的类型:

mysql> SELECT * FROM performance_schema.setup_consumers;+----------------------------------+---------+ | 启用名字|  | +----------------------------------+---------+ | events_stages_current没有| | | events_stages_history没有| | | events_stages_history_long没有| | | events_statements_current |是| | events_statements_history |是| | events_statements_history_long没有| | | events_transactions_current |是| | events_transactions_history |是| | events_transactions_history_long没有| | | events_waits_current没有| | | events_waits_history | ||events_waits_history_long|没有||global_instrumentation| YES | | thread_instrumentation | YES | | statements_digest | YES | +----------------------------------+---------+

修改setup_consumers表来影响使用者阶段的预筛选,并确定将事件发送到的目的地。若要启用或禁用使用者,请设置其启用价值是的没有

修订setup_consumers表立即影响监控。

如果禁用某个使用者,服务器就不会花时间维护该使用者的目的地。例如,如果您不关心历史事件信息,请禁用历史消费者:

更新performance_schema。setup_consumersSET ENABLED = 'NO' WHERE NAME LIKE '%history%';

中的使用者设置setup_consumers表形成了由高到低的层次结构。以下原则适用:

  • 与使用者相关联的目的地不会接收事件,除非Performance Schema检查使用者并且启用了使用者。

  • 只有当它所依赖的所有消费者(如果有)都启用时,才会检查消费者。

  • 如果一个消费者未被选中,或者被选中但被禁用,则依赖于它的其他消费者不会被选中。

  • 依赖的消费者可能有自己的依赖消费者。

  • 如果事件不会被发送到任何目的地,则性能模式不会生成它。

下面的列表描述了可用的消费者值。有关几种代表性使用者配置及其对仪器的影响的讨论,请参见第5.8节“消费者配置示例”

全局和线程消费者

  • global_instrumentation是最高层次的消费者。如果global_instrumentation没有,它禁用全局插装。所有其他设置都是较低的级别,不进行检查;它们被设置成什么并不重要。在当前事件表或事件历史表中不维护全局或每个线程的信息,也不收集单个事件。如果global_instrumentation是的,性能模式维护全局状态的信息,并检查thread_instrumentation消费者。

  • thread_instrumentation仅当global_instrumentation是的.否则,如果thread_instrumentation没有,它禁用特定于线程的插装,并且忽略所有低级设置。在当前事件表或事件历史表中不维护每个线程的信息,也不收集单个事件。如果thread_instrumentation是的,性能模式维护特定于线程的信息并进行检查events_xxx_current消费者。

等待事件消费者

这些消费者两者都需要global_instrumentation而且thread_instrumentation是的或者它们没有被检查。如果勾选,它们的作用如下:

  • events_waits_current,如果没有控件中的单个等待事件的收集events_waits_current表格如果是的,它启用等待事件收集,并且性能模式检查events_waits_history而且events_waits_history_long消费者。

  • events_waits_history如果没有选中event_waits_current没有.否则,一个events_waits_history的价值没有是的控件中的等待事件的收集events_waits_history表格

  • events_waits_history_long如果没有选中event_waits_current没有.否则,一个events_waits_history_long的价值没有是的控件中的等待事件的收集events_waits_history_long表格

阶段事件消费者

这些消费者两者都需要global_instrumentation而且thread_instrumentation是的或者它们没有被检查。如果勾选,它们的作用如下:

  • events_stages_current,如果没有对象中的各个阶段事件的集合events_stages_current表格如果是的时,它启用阶段事件收集,并且性能模式检查events_stages_history而且events_stages_history_long消费者。

  • events_stages_history如果没有选中event_stages_current没有.否则,一个events_stages_history的价值没有是的控件中的阶段事件的收集events_stages_history表格

  • events_stages_history_long如果没有选中event_stages_current没有.否则,一个events_stages_history_long的价值没有是的控件中的阶段事件的收集events_stages_history_long表格

语句事件消费者

这些消费者两者都需要global_instrumentation而且thread_instrumentation是的或者它们没有被检查。如果勾选,它们的作用如下:

  • events_statements_current,如果没有控件中的单个语句事件的集合events_statements_current表格如果是的,它启用语句事件收集,并且性能模式检查events_statements_history而且events_statements_history_long消费者。

  • events_statements_history如果没有选中events_statements_current没有.否则,一个events_statements_history的价值没有是的控件中的语句事件的收集events_statements_history表格

  • events_statements_history_long如果没有选中events_statements_current没有.否则,一个events_statements_history_long的价值没有是的控件中的语句事件的收集events_statements_history_long表格

事务事件消费者

这些消费者两者都需要global_instrumentation而且thread_instrumentation是的或者它们没有被检查。如果勾选,它们的作用如下:

  • events_transactions_current,如果没有控件中的单个事务事件的收集events_transactions_current表格如果是的,它启用事务事件收集,并且性能模式检查events_transactions_history而且events_transactions_history_long消费者。

  • events_transactions_history如果没有选中events_transactions_current没有.否则,一个events_transactions_history的价值没有是的控件中的事务事件的收集events_transactions_history表格

  • events_transactions_history_long如果没有选中events_transactions_current没有.否则,一个events_transactions_history_long的价值没有是的控件中的事务事件的收集events_transactions_history_long表格

语句摘要消费者

statements_digest消费者的需要global_instrumentation是的或者它没有被检查。不依赖于语句事件消费者,因此您可以获得每个摘要的统计信息,而不必在events_statements_current,这在开销方面是有利的。相反,你可以得到详细的声明events_statements_current没有消化(的消化而且DIGEST_TEXT列是在这种情况下)。

有关语句摘要的详细信息,请参见性能模式语句摘要和抽样