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解决方案工程师!