• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 消费者配置示例

    setup_consumers表中的使用者设置构成了从较高级别到较低级别的层次结构。以下讨论描述了使用者的工作方式,显示了从高到低逐步启用使用者设置时的特定配置及其效果。显示的消费者价值具有代表性。此处描述的一般原则适用于其他可用的消费者价值。

    配置描述按功能和开销增加的顺序进行。如果不需要通过启用较低级别设置提供的信息,请禁用它们,并且“性能模式”将代表您执行更少的代码,并且您将需要筛选的信息也更少。

    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,则性能架构将禁用与使用者相关联的工具,并忽略所有较低级别的设置。如果给定设置为YES,则性能架构将启用与其关联的工具,并在下一个最低级别检查设置。有关每个使用者的规则的说明,请参见“使用者的预过滤”。

    例如,如果global_instrumentation启用,thread_instrumentation则选中。如果thread_instrumentation启用,将检查使用者。如果这些被启用,并进行检查。events_xxx_currentevents_waits_currentevents_waits_historyevents_waits_history_long

    以下每个配置描述都指示性能模式检查哪些设置元素以及它维护哪些输出表(即,它为哪些表收集信息)。

    • 没有仪器
    • 仅限全球仪器
    • 仅全局和线程检测
    • 全局,线程和当前事件检测
    • 全局,线程,当前事件和事件历史记录检测

    没有仪器

    服务器配置状态:

    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
    • setup_instruments
    • setup_objects

    相对于先前的配置,维护了其他输出表:

    • mutex_instances
    • rwlock_instances
    • cond_instances
    • file_instances
    • users
    • hosts
    • accounts
    • socket_summary_by_event_name
    • file_summary_by_instance
    • file_summary_by_event_name
    • objects_summary_global_by_type
    • memory_summary_global_by_event_name
    • table_lock_waits_summary_by_table
    • table_io_waits_summary_by_index_usage
    • table_io_waits_summary_by_table
    • events_waits_summary_by_instance
    • events_waits_summary_global_by_event_name
    • events_stages_summary_global_by_event_name
    • events_statements_summary_global_by_event_name
    • events_transactions_summary_global_by_event_name

    仅全局和线程检测

    服务器配置状态:

    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_currentxxxwaitsstagesstatementstransactions
    • 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_historyxxxwaitsstagesstatementstransactions
    • 消费者,其中为,,,events_xxx_history_longxxxwaitsstagesstatementstransactions

    相对于先前的配置,维护了其他输出表:

    • 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