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 |
...
+----------------------------------+---------+
在此組態中,檢測會全域和每個執行緒維護。不會在 current-events 或 event-history 表格中收集個別事件。
相較於先前的組態,額外檢查的設定元素
表格
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 |
...
+----------------------------------+---------+
在此組態中,檢測會全域和每個執行緒維護。個別事件會收集到 current-events 表格中,但不會收集到 event-history 表格中。
相較於先前的組態,額外檢查的設定元素
消費者
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