消费者配置示例
该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_instancesrwlock_instancescond_instancesfile_instancesusershostsaccountssocket_summary_by_event_namefile_summary_by_instancefile_summary_by_event_nameobjects_summary_global_by_typememory_summary_global_by_event_nametable_lock_waits_summary_by_tabletable_io_waits_summary_by_index_usagetable_io_waits_summary_by_tableevents_waits_summary_by_instanceevents_waits_summary_global_by_event_nameevents_stages_summary_global_by_event_nameevents_statements_summary_global_by_event_nameevents_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,其中xxx是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 | ... +---------------------------------- +--------- +
在这种配置下,将按全局和每个线程维护检测。单个事件收集在当前事件表中,而不收集在事件历史表中。
相对于先前的配置,检查了其他设置元素:
- 消费者,其中为,,,
events_xxx_historyxxxwaitsstagesstatementstransactions - 消费者,其中为,,,
events_xxx_history_longxxxwaitsstagesstatementstransactions
相对于先前的配置,维护了其他输出表:
events_xxx_current,其中xxx是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_history,其中xxx是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_long,其中xxx是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_history,其中xxx是waits,stages,statements,transactionsevents_xxx_history_long,其中xxx是waits,stages,statements,transactions
