文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
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      |
...
+----------------------------------+---------+

在此組態中,檢測會全域和每個執行緒維護。不會在 current-events 或 event-history 表格中收集個別事件。

相較於先前的組態,額外檢查的設定元素

  • 表格 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      |
...
+----------------------------------+---------+

在此組態中,檢測會全域和每個執行緒維護。個別事件會收集到 current-events 表格中,但不會收集到 event-history 表格中。

相較於先前的組態,額外檢查的設定元素

  • 消費者 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