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 節「依據消費者進行預先篩選」。
例如,如果啟用 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
表格
setup_actors
欄位
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