Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  MySQL Performance Schema

第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 不同,后者用于元数据的检查。

  • 性能模式监控服务器事件。一个 事件 是服务器执行的任何操作,需要时间,并且已经被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 模式