文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  MySQL 性能模式

第 29 章 MySQL 性能模式

目录

29.1 性能模式快速入门
29.2 性能模式构建配置
29.3 性能模式启动配置
29.4 性能模式运行时配置
29.4.1 性能模式事件计时
29.4.2 性能模式事件过滤
29.4.3 事件预过滤
29.4.4 按工具预过滤
29.4.5 按对象预过滤
29.4.6 按线程预过滤
29.4.7 按消费者预过滤
29.4.8 消费者配置示例
29.4.9 为过滤操作命名工具或消费者
29.4.10 确定哪些内容已进行检测
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.19.1 使用性能模式进行查询分析
29.19.2 获取父事件信息
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 模式*