可以在运行时启用特定的 Performance Schema 功能,以控制发生哪些类型的事件收集。
性能模式设置表包含有关监控配置的信息:
mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'performance_schema'
AND TABLE_NAME LIKE 'setup%';
+-------------------+
| TABLE_NAME |
+-------------------+
| setup_actors |
| setup_consumers |
| setup_instruments |
| setup_objects |
| setup_timers |
+-------------------+
您可以检查这些表的内容以获取有关 Performance Schema 监视特征的信息。如果您有UPDATE
权限,您可以通过修改设置表来影响监视的发生方式来更改性能模式操作。有关这些表的其他详细信息,请参阅第 25.12.2 节,“性能模式设置表”。
要查看选择了哪些事件计时器,请查询
setup_timers
表:
mysql> SELECT * FROM performance_schema.setup_timers;
+-------------+-------------+
| NAME | TIMER_NAME |
+-------------+-------------+
| idle | MICROSECOND |
| wait | CYCLE |
| stage | NANOSECOND |
| statement | NANOSECOND |
| transaction | NANOSECOND |
+-------------+-------------+
该NAME
值指示计时器适用的仪器类型,并TIMER_NAME
指示哪个计时器适用于这些仪器。计时器适用于名称以与NAME
值匹配的元素开头的工具。
要更改计时器,请更新NAME
值。例如,为定时器使用NANOSECOND
定时器
wait
:
mysql> UPDATE performance_schema.setup_timers
SET TIMER_NAME = 'NANOSECOND'
WHERE NAME = 'wait';
mysql> SELECT * FROM performance_schema.setup_timers;
+-------------+-------------+
| NAME | TIMER_NAME |
+-------------+-------------+
| idle | MICROSECOND |
| wait | NANOSECOND |
| stage | NANOSECOND |
| statement | NANOSECOND |
| transaction | NANOSECOND |
+-------------+-------------+
有关计时器的讨论,请参阅 第 25.4.1 节,“性能模式事件计时”。
setup_instruments
和
setup_consumers
表分别列出了可以收集事件的工具和实际收集事件信息的消费者类型
。其他设置表允许进一步修改监控配置。
第 25.4.2 节,“性能模式事件过滤”,讨论了如何修改这些表以影响事件收集。
如果有必须在运行时使用 SQL 语句进行的性能架构配置更改,并且您希望这些更改在每次服务器启动时生效,请将这些语句放在一个文件中,并使用
init_file
系统变量集启动服务器以命名该文件. 如果您有多个监控配置,则此策略也很有用,每个配置都经过定制以产生不同类型的监控,例如临时服务器健康监控、事件调查、应用程序行为故障排除等。将每个监视配置的语句放入它们自己的文件中,并init_file
在启动服务器时指定适当的文件作为值。