文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (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