目录
- 29.1 性能模式快速入门
- 29.2 性能模式构建配置
- 29.3 性能模式启动配置
- 29.4 性能模式运行时配置
- 29.5 性能模式查询
- 29.6 性能模式监测对象命名约定
- 29.7 性能模式状态监控
- 29.8 性能模式原子和分子事件
- 29.9 用于当前和历史事件的性能模式表
- 29.10 性能模式语句摘要和采样
- 29.11 性能模式通用表特征
- 29.12 性能模式表描述
- 29.12.1 性能模式表参考
- 29.12.2 性能模式设置表
- 29.12.3 性能模式实例表
- 29.12.4 性能模式等待事件表
- 29.12.5 性能模式阶段事件表
- 29.12.6 性能模式语句事件表
- 29.12.7 性能模式事务表
- 29.12.8 性能模式连接表
- 29.12.9 性能模式连接属性表
- 29.12.10 性能模式用户定义变量表
- 29.12.11 性能模式复制表
- 29.12.12 性能模式 NDB 集群表
- 29.12.13 性能模式锁表
- 29.12.14 性能模式系统变量表
- 29.12.15 性能模式状态变量表
- 29.12.16 性能模式线程池表
- 29.12.17 性能模式防火墙表
- 29.12.18 性能模式密钥环表
- 29.12.19 性能模式克隆表
- 29.12.20 性能模式汇总表
- 29.12.21 性能模式遥测表
- 29.12.22 性能模式杂项表
- 29.13 性能模式选项和变量参考
- 29.14 性能模式命令选项
- 29.15 性能模式系统变量
- 29.16 性能模式状态变量
- 29.17 性能模式内存分配模型
- 29.18 性能模式和插件
- 29.19 使用性能模式诊断问题
- 29.20 性能模式的限制
MySQL 性能模式是一个用于在低级别监控 MySQL 服务器执行情况的功能。 性能模式具有以下特点:
性能模式提供了一种在运行时检查服务器内部执行情况的方法。 它是使用
PERFORMANCE_SCHEMA
存储引擎和performance_schema
数据库实现的。 性能模式主要关注性能数据。 这与INFORMATION_SCHEMA
不同,后者用于检查元数据。性能模式监控服务器事件。 ““事件”” 是指服务器执行的任何需要时间的操作,并且已经过监测,以便可以收集计时信息。 通常,事件可以是函数调用、对操作系统的等待、SQL 语句执行的阶段(例如解析或排序)或整个语句或语句组。 事件收集提供对同步调用(例如互斥锁)、文件和表 I/O、表锁等信息的访问权限,这些信息适用于服务器和多个存储引擎。
性能模式事件不同于写入服务器二进制日志的事件(描述数据修改)和事件调度程序事件(一种存储程序)。
性能模式事件特定于给定的 MySQL 服务器实例。 性能模式表被视为服务器本地表,对它们的更改不会被复制或写入二进制日志。
当前事件、事件历史记录和摘要均可用。这使您能够确定检测到的活动执行了多少次以及花费了多少时间。事件信息可用于显示特定线程的活动,或与特定对象(如互斥锁或文件)相关的活动。
PERFORMANCE_SCHEMA
存储引擎使用服务器源代码中的“检测点”收集事件数据。收集的事件存储在
performance_schema
数据库的表中。可以使用SELECT
语句查询这些表,就像查询其他表一样。可以通过 SQL 语句更新
performance_schema
数据库中的表来动态修改性能模式配置。配置更改会立即影响数据收集。性能模式中的表是内存表,不使用持久性磁盘存储。内容从服务器启动时开始重新填充,并在服务器关闭时丢弃。
MySQL 支持的所有平台都提供监控。
可能会有一些限制:计时器的类型可能因平台而异。适用于存储引擎的检测可能并非对所有存储引擎都实现。每个第三方引擎的检测由引擎维护者负责。另请参阅第 29.20 节,“性能模式的限制”。
数据收集是通过修改服务器源代码以添加检测来实现的。与复制或事件调度程序等其他功能不同,性能模式没有关联的单独线程。
性能模式旨在提供对有关服务器执行的有用信息的访问,同时对服务器性能的影响最小。其实现遵循以下设计目标
激活性能模式不会导致服务器行为发生变化。例如,它不会导致线程调度发生变化,也不会导致查询执行计划(如
EXPLAIN
所示)发生变化。服务器监控持续且不引人注目地进行,开销极小。激活性能模式不会导致服务器无法使用。
解析器保持不变。没有新的关键字或语句。
即使性能模式在内部失败,服务器代码的执行也会正常进行。
如果可以选择在事件收集期间初始执行处理或在稍后的事件检索期间执行处理,则优先考虑使收集更快。这是因为收集是持续进行的,而检索是按需进行的,并且可能根本不会发生。
大多数性能模式表都有索引,这使得优化器可以使用除全表扫描之外的执行计划。有关详细信息,请参阅第 10.2.4 节,“优化性能模式查询”。
添加新的检测点很容易。
检测已版本化。如果检测实现发生变化,则先前检测的代码将继续工作。这对第三方插件的开发人员有利,因为它不需要升级每个插件以与最新的性能模式更改保持同步。
MySQL sys
模式是一组对象,提供了对性能模式收集的数据的便捷访问。sys
模式默认安装。有关使用说明,请参阅第 30 章,MySQL sys 模式。