setup_consumers
表中的消费者设置从高到低形成一个层次结构。以下讨论描述了消费者是如何工作的,并展示了随着消费者设置从高到低逐步启用时,特定配置及其影响。显示的消费者值是代表性的。此处描述的一般原则适用于可能可用的其他消费者值。
配置说明按功能和开销递增的顺序排列。如果不需要通过启用较低级别的设置来提供信息,请禁用它们,以便 Performance Schema 代表您执行更少的代码,并且需要筛选的信息更少。
setup_consumers
表包含以下值层次结构:
global_instrumentation
thread_instrumentation
events_waits_current
events_waits_history
events_waits_history_long
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
statements_digest
在消费者层次结构中,等待、阶段、语句和事务的消费者都处于同一级别。这与事件嵌套层次结构不同,在事件嵌套层次结构中,等待事件嵌套在阶段事件中,阶段事件嵌套在语句事件中,语句事件嵌套在事务事件中。
如果给定的消费者设置为 NO
,则 Performance Schema 将禁用与该消费者关联的检测,并忽略所有较低级别的设置。如果给定的设置为 YES
,则 Performance Schema 将启用与其关联的检测,并检查下一最低级别的设置。有关每个消费者的规则说明,请参阅第 29.4.7 节“按 Consumer 预过滤”。
例如,如果启用了 global_instrumentation
,则会检查 thread_instrumentation
。如果启用了 thread_instrumentation
,则会检查 events_
消费者。如果在这些消费者中启用了 xxx
_currentevents_waits_current
,则会检查 events_waits_history
和 events_waits_history_long
。
以下每个配置说明都指明了 Performance Schema 检查的设置元素和维护的输出表(即收集信息的表)。
服务器配置状态
mysql> SELECT * FROM performance_schema.setup_consumers;
+---------------------------+---------+
| NAME | ENABLED |
+---------------------------+---------+
| global_instrumentation | NO |
...
+---------------------------+---------+
在此配置中,不会检测任何内容。
已检查的设置元素
表
setup_consumers
,消费者global_instrumentation
维护的输出表
无
服务器配置状态
mysql> SELECT * FROM performance_schema.setup_consumers;
+---------------------------+---------+
| NAME | ENABLED |
+---------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | NO |
...
+---------------------------+---------+
在此配置中,仅维护全局状态的检测。已禁用每个线程检测。
相对于先前配置,额外检查的设置元素
表
setup_consumers
,消费者thread_instrumentation
相对于先前配置,额外维护的输出表
服务器配置状态
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | NO |
...
| events_stages_current | NO |
...
| events_statements_current | NO |
...
| events_transactions_current | NO |
...
+----------------------------------+---------+
在此配置中,检测会在全局和每个线程中进行维护。当前事件表或事件历史记录表中不会收集任何单个事件。
相对于先前配置,额外检查的设置元素
表
setup_consumers
,使用者events_
,其中xxx
_currentxxx
是waits
、stages
、statements
、transactions
列
threads.instrumented
相对于先前配置,额外维护的输出表
events_
,其中xxx
_summary_by_yyy
_by_event_namexxx
是waits
、stages
、statements
、transactions
;yyy
是thread
、user
、host
、account
服务器配置状态
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | NO |
| events_waits_history_long | NO |
| events_stages_current | YES |
| events_stages_history | NO |
| events_stages_history_long | NO |
| events_statements_current | YES |
| events_statements_history | NO |
| events_statements_history_long | NO |
| events_transactions_current | YES |
| events_transactions_history | NO |
| events_transactions_history_long | NO |
...
+----------------------------------+---------+
在此配置中,检测会在全局和每个线程中进行维护。单个事件会收集在当前事件表中,但不会收集在事件历史记录表中。
相对于先前配置,额外检查的设置元素
使用者
events_
,其中xxx
_historyxxx
是waits
、stages
、statements
、transactions
使用者
events_
,其中xxx
_history_longxxx
是waits
、stages
、statements
、transactions
相对于先前配置,额外维护的输出表
events_
,其中xxx
_currentxxx
是waits
、stages
、statements
、transactions
前面的配置不收集事件历史记录,因为 events_
和 xxx
_historyevents_
使用者已禁用。这些使用者可以单独或一起启用,以便按线程、全局或两者都收集事件历史记录。xxx
_history_long
此配置按线程收集事件历史记录,但不会全局收集
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | YES |
| events_waits_history_long | NO |
| events_stages_current | YES |
| events_stages_history | YES |
| events_stages_history_long | NO |
| events_statements_current | YES |
| events_statements_history | YES |
| events_statements_history_long | NO |
| events_transactions_current | YES |
| events_transactions_history | YES |
| events_transactions_history_long | NO |
...
+----------------------------------+---------+
为此配置维护的事件历史记录表
events_
,其中xxx
_historyxxx
是waits
、stages
、statements
、transactions
此配置全局收集事件历史记录,但不会按线程收集
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | NO |
| events_waits_history_long | YES |
| events_stages_current | YES |
| events_stages_history | NO |
| events_stages_history_long | YES |
| events_statements_current | YES |
| events_statements_history | NO |
| events_statements_history_long | YES |
| events_transactions_current | YES |
| events_transactions_history | NO |
| events_transactions_history_long | YES |
...
+----------------------------------+---------+
为此配置维护的事件历史记录表
events_
,其中xxx
_history_longxxx
是waits
、stages
、statements
、transactions
此配置按线程和全局收集事件历史记录
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | YES |
| events_waits_history_long | YES |
| events_stages_current | YES |
| events_stages_history | YES |
| events_stages_history_long | YES |
| events_statements_current | YES |
| events_statements_history | YES |
| events_statements_history_long | YES |
| events_transactions_current | YES |
| events_transactions_history | YES |
| events_transactions_history_long | YES |
...
+----------------------------------+---------+
为此配置维护的事件历史记录表
events_
,其中xxx
_historyxxx
是waits
、stages
、statements
、transactions
events_
,其中xxx
_history_longxxx
是waits
、stages
、statements
、transactions