MySQL监视——Performance Schema

2023-08-31 14:46:56 浏览数 (3)

MySQL的Performance Schema是一套内存表,用于跟踪MySQL的性能指标。它实际上使用PERFORMANCE_SCHEMA存储引擎,用户操作performance_schema数据库中的表。用户通过Performance Schema能够观察哪些查询正在运行、I/O等待的状态,及历史性能数据等等信息。Performance Schema仅对本地服务器有效,所有的更改不会复制到其他的服务器。

Performance Schema的表大致可以分为6个组,配置、当前事件、历史、实例、摘要,及其他。配置组里面包括配置监视特征的表、当前事件组中的表包含最近的事件信息、历史组中的表存储历史事件数据、实例组中的表定义什么样的对象类型用于测量、摘要组中的表整合事件信息,其他组中的表则记录未被分类的信息。

用户可以通过修改setup_%表的内容配置Performance Schema,setup_%表包括如下5张表:

代码语言:javascript复制
 ---------------------------------------- 
| Tables_in_performance_schema (setup_%) |
 ---------------------------------------- 
| setup_actors                           |
| setup_consumers                        |
| setup_instruments                      |
| setup_objects                          |
| setup_threads                          |
 ---------------------------------------- 
  • setup_actors:检测有哪些前台线程
  • setup_consumers :监控的事件存储在哪里
  • setup_instruments:Performance Schema收集哪些服务器度量指标
  • setup_objects :检测有哪些对象
  • setup_threads:检测有哪些线程分类

Performance Schema中存在大量的检测项目,检测项目对应MySQL服务器的源代码检测点,检测项目名称由一系列部件组成采用“/”分割,从左到右,从通用到具体。例如,

代码语言:javascript复制
wait/io/file/myisam/log
stage/sql/closing tables

通用(顶层)的组件包括,

  • idel:检测的空闲事件
  • error:检测的错误事件
  • memory:检测的内存事件
  • stage:检测的阶段事件
  • statement:检测的语句事件
  • transaction:检测的事务事件
  • wait:检测的等待事件

Performance Schema 是DBA 提高性能的工具,通过进行实际的测量对服务器的性能进行调整。通常情况下,DBA对一个可以重复再现的问题利用Performance Schema进行分析。

  • 启用全部的检测项目
  • 运行查询
  • 通过分析,排除没有问题的部分
  • 禁用已排除的检测项目
  • 再次执行前面的过程,随着多次迭代,确定影响性能的根本原因
  • 确定原因后,采取适当措施进行优化
  • 对比优化后的性能

以上内容是关于Performance Schema的简单介绍,完全掌握Performance Schema将对MySQL运维能力的提升有巨大帮助,感兴趣的读者请访问官网详细学习相关内容。

感谢关注MySQL解决方案工程师!

0 人点赞