目录
- 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
不同,后者用于元数据的检查。 -
性能模式监控服务器事件。一个 “事件” 是服务器执行的任何操作,需要时间,并且已经被instrumented以便收集计时信息。一般来说,事件可以是一个函数调用、操作系统的等待、SQL 语句执行的某个阶段(例如解析或排序),或整个语句或语句组。事件收集提供了关于同步调用(例如互斥锁)、文件和表 I/O、表锁等信息的访问权限。
-
性能模式事件与写入服务器二进制日志的事件(描述数据修改)和事件调度器事件(一种存储程序)不同。
-
性能模式事件特定于给定的 MySQL 服务器实例。性能模式表被认为是服务器本地的,且对它们的更改不会被复制或写入二进制日志。
-
当前事件可用,同时还有事件历史记录和摘要。这使您可以确定instrumented 活动执行了多少次,并且花费了多少时间。事件信息可用于显示特定线程的活动或与特定对象(例如互斥锁或文件)相关的活动。
-
PERFORMANCE_SCHEMA
存储引擎使用服务器源代码中的 “instrumentation 点” 收集事件数据。 -
收集的事件存储在
performance_schema
数据库中的表中。这些表可以使用SELECT
语句查询,像其他表一样。 -
性能模式配置可以通过更新
performance_schema
数据库中的表来动态修改。配置更改立即影响数据收集。 -
性能模式表是内存表,不使用持久的磁盘存储。内容从服务器启动时重新填充,并在服务器关闭时被丢弃。
-
监控在所有支持的 MySQL 平台上都可用。
可能有一些限制:计时器类型可能因平台而异。存储引擎的仪器可能没有为所有存储引擎实现。每个第三方引擎的仪器是引擎维护者的责任。见 第 29.20 节,“性能模式限制”。
-
数据收集是通过修改服务器源代码以添加仪器来实现的。与复制或事件调度器等其他功能不同,性能模式没有单独的线程。
性能模式旨在提供关于服务器执行的有用信息,同时尽量减少对服务器性能的影响。实现遵循以下设计目标:
-
激活性能模式不会改变服务器行为。例如,它不会改变线程调度,也不会改变查询执行计划(如
EXPLAIN
所示)。 -
服务器监控会连续进行,几乎没有开销。激活性能模式不会使服务器不可用。
-
解析器保持不变。没有新的关键字或语句。
-
服务器代码的执行即使性能模式内部失败也会继续进行。
-
在事件收集和事件检索之间选择时,优先考虑使收集速度更快。这是因为收集是连续进行的,而检索是按需进行的,可能永远不会发生。
-
大多数性能模式表都有索引,这使优化器可以访问其他执行计划,而不仅仅是全表扫描。有关更多信息,请参阅第 10.2.4 节,“优化性能模式查询”。
-
添加新的仪表点非常容易。
-
仪表是版本化的。如果仪表实现发生变化,之前仪表的代码将继续工作。这对第三方插件的开发者非常有利,因为不需要升级每个插件以保持与最新性能模式变化的同步。
MySQL sys
模式是一组对象,提供了方便的访问性能模式收集的数据。 sys
模式默认安装。有关使用说明,请参阅第 30 章,MySQL sys 模式。