目录
- 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
数据库中的表来动态修改 Performance Schema 配置。配置更改会立即影响数据收集。Performance Schema 中的表是内存表,不使用持久性磁盘存储。内容在服务器启动时重新填充,并在服务器关闭时丢弃。
MySQL 支持的所有平台都提供监控功能。
可能会有一些限制:计时器的类型可能因平台而异。应用于存储引擎的检测可能并非对所有存储引擎都实现。每个第三方引擎的检测由引擎维护者负责。另见 第 29.20 节,“Performance Schema 的限制”。
数据收集是通过修改服务器源代码以添加检测来实现的。与复制或事件调度程序等其他功能不同,Performance Schema 没有关联的单独线程。
Performance Schema 旨在提供对有关服务器执行的有用信息的访问,同时最大限度地减少对服务器性能的影响。该实现遵循以下设计目标:
激活 Performance Schema 不会导致服务器行为发生变化。例如,它不会导致线程调度发生变化,也不会导致查询执行计划(如
EXPLAIN
所示)发生变化。服务器监控持续且不显眼地进行,开销非常小。激活 Performance Schema 不会导致服务器无法使用。
解析器保持不变。没有新的关键字或语句。
即使 Performance Schema 内部失败,服务器代码的执行也会正常进行。
如果可以选择在初始事件收集期间或稍后事件检索期间执行处理,则优先考虑使收集更快。这是因为收集是持续进行的,而检索是按需进行的,并且可能永远不会发生。
大多数 Performance Schema 表都有索引,这使优化器可以访问除全表扫描之外的执行计划。有关更多信息,请参阅 第 10.2.4 节,“优化 Performance Schema 查询”。
添加新的检测点很容易。
检测是版本化的。如果检测实现发生变化,则先前检测的代码将继续工作。这对第三方插件的开发人员有利,因为不需要升级每个插件以与最新的 Performance Schema 更改保持同步。
MySQL sys
模式是一组对象,提供对 Performance Schema 收集的数据的便捷访问。sys
模式默认安装。有关使用说明,请参阅 第 30 章,*MySQL sys 模式*。