文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.4.8 消費者配置範例

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_current 消費者。如果啟用這些 events_waits_current,則會檢查 events_waits_historyevents_waits_history_long

以下每個配置描述都會指出 Performance Schema 檢查哪些設定元素,以及它維護哪些輸出表格(也就是說,收集哪些表格的資訊)。

不進行檢測

伺服器配置狀態

mysql> SELECT * FROM performance_schema.setup_consumers;
+---------------------------+---------+
| NAME                      | ENABLED |
+---------------------------+---------+
| global_instrumentation    | NO      |
...
+---------------------------+---------+

在此配置中,不檢測任何內容。

檢查的設定元素

維護的輸出表格

僅進行全域檢測

伺服器配置狀態

mysql> SELECT * FROM performance_schema.setup_consumers;
+---------------------------+---------+
| NAME                      | ENABLED |
+---------------------------+---------+
| global_instrumentation    | YES     |
| thread_instrumentation    | NO      |
...
+---------------------------+---------+

在此配置中,僅維護全域狀態的檢測。停用每個執行緒的檢測。

相對於先前配置檢查的其他設定元素

相較於先前的組態,所維護的額外輸出表格

僅限全域和執行緒檢測

伺服器配置狀態

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_current,其中 xxxwaitsstagesstatementstransactions

  • 表格 setup_actors

  • 欄位 threads.instrumented

相較於先前的組態,所維護的額外輸出表格

  • events_xxx_summary_by_yyy_by_event_name,其中 xxxwaitsstagesstatementstransactions;而 yyythreaduserhostaccount

全域、執行緒和目前事件檢測

伺服器配置狀態

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_history,其中 xxxwaitsstagesstatementstransactions

  • 消費者 events_xxx_history_long,其中 xxxwaitsstagesstatementstransactions

相較於先前的組態,所維護的額外輸出表格

  • events_xxx_current,其中 xxxwaitsstagesstatementstransactions

全域、執行緒、目前事件和事件歷史記錄檢測

先前的組態不會收集事件歷史記錄,因為 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_history,其中 xxxwaitsstagesstatementstransactions

此組態會收集全域的事件歷史記錄,但不會收集每個執行緒的事件歷史記錄

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_long,其中 xxxwaitsstagesstatementstransactions

此組態會收集每個執行緒和全域的事件歷史記錄

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_history,其中 xxxwaitsstagesstatementstransactions

  • events_xxx_history_long,其中 xxxwaitsstagesstatementstransactions