Documentation Home
MySQL 8.0 参考手册  /  第 27 章 MySQL 性能模式

第 27 章 MySQL 性能模式

目录

27.1 性能模式快速入门
27.2 性能模式构建配置
27.3 性能模式启动配置
27.4 性能模式运行时配置
27.4.1 性能模式事件时序
27.4.2 性能模式事件过滤
27.4.3 事件预过滤
27.4.4 按仪器预过滤
27.4.5 按对象预过滤
27.4.6 按线程预过滤
27.4.7 消费者预过滤
27.4.8 消费者配置示例
27.4.9 过滤操作的命名工具或消费者
27.4.10 确定检测的是什么
27.5 性能模式查询
27.6 性能模式工具命名约定
27.7 性能模式状态监控
27.8 性能模式原子和分子事件
27.9 当前和历史事件的性能模式表
27.10 性能模式语句摘要和采样
27.11 性能模式总表特征
27.12 性能模式表描述
27.12.1 性能模式表参考
27.12.2 性能模式设置表
27.12.3 性能模式实例表
27.12.4 性能模式等待事件表
27.12.5 性能模式阶段事件表
27.12.6 性能模式语句事件表
27.12.7 性能模式事务表
27.12.8 性能模式连接表
27.12.9 性能模式连接属性表
27.12.10 性能模式用户定义的变量表
27.12.11 性能模式复制表
27.12.12 Performance Schema NDB 集群表
27.12.13 性能模式锁表
27.12.14 性能模式系统变量表
27.12.15 性能模式状态变量表
27.12.16 性能模式线程池表
27.12.17 性能模式防火墙表
27.12.18 性能模式密钥环表
27.12.19 性能模式克隆表
27.12.20 性能模式汇总表
27.12.21 性能模式杂表
27.13 性能模式选项和变量引用
27.14 性能模式命令选项
27.15 性能模式系统变量
27.16 性能模式状态变量
27.17性能模式内存分配模型
27.18 性能模式和插件
27.19 使用性能模式诊断问题
27.19.1 使用性能模式进行查询分析
27.19.2 获取父事件信息
27.20 性能模式的限制

MySQL Performance Schema 是一种用于在低级别监视 MySQL 服务器执行的功能。性能模式具有以下特征:

  • 性能模式提供了一种在运行时检查服务器内部执行的方法。它是使用 PERFORMANCE_SCHEMA存储引擎和performance_schema数据库实现的。性能模式主要关注性能数据。这不同于INFORMATION_SCHEMA,后者用于检查元数据。

  • 性能模式监控服务器事件。事件是服务器所做的任何需要时间的 事情,并且已经过检测以便可以收集时间信息。通常,事件可以是函数调用、等待操作系统、SQL 语句执行的一个阶段(例如解析或排序),或者整个语句或一组语句。事件收集提供对有关服务器和多个存储引擎的同步调用(例如互斥锁)文件和表 I/O、表锁等信息的访问。

  • Performance Schema 事件不同于写入服务器二进制日志的事件(描述数据修改)和 Event Scheduler 事件(一种存储程序)。

  • 性能模式事件特定于 MySQL 服务器的给定实例。Performance Schema 表被认为是服务器本地的,对它们的更改不会被复制或写入二进制日志。

  • 提供当前事件以及事件历史和摘要。这使您能够确定检测活动执行了多少次以及它们花费了多少时间。事件信息可用于显示特定线程的活动,或与特定对象(如互斥体或文件)关联的活动。

  • 存储引擎使用服务器源代码中的 “检测PERFORMANCE_SCHEMA收集事件数据。

  • 收集的事件存储在 performance_schema数据库的表中。可以SELECT 像其他表一样使用语句查询这些表。

  • performance_schema 可以通过 SQL 语句 更新数据库中的表来动态修改 Performance Schema 配置。配置更改会立即影响数据收集。

  • Performance Schema 中的表是内存表,不使用持久的磁盘存储。内容在服务器启动时重新填充,并在服务器关闭时丢弃。

  • 在 MySQL 支持的所有平台上都可以进行监控。

    一些限制可能适用:定时器的类型可能因平台而异。适用于存储引擎的工具可能不会为所有存储引擎实现。每个第三方引擎的检测是引擎维护者的责任。另见 第 27.20 节,“对性能模式的限制”

  • 数据收集是通过修改服务器源代码以添加检测来实现的。与复制或事件调度程序等其他功能不同,没有与性能模式关联的单独线程。

性能模式旨在提供对有关服务器执行的有用信息的访问,同时对服务器性能的影响最小。实施遵循以下设计目标:

  • 激活性能模式不会导致服务器行为发生变化。例如,它不会导致线程调度发生变化,也不会导致查询执行计划(如 所示 EXPLAIN)发生变化。

  • 服务器监控持续且不引人注意地发生,开销非常小。激活性能模式不会使服务器不可用。

  • 解析器没有改变。没有新的关键字或语句。

  • 即使性能模式在内部失败,服务器代码的执行也会正常进行。

  • 当在最初的事件收集期间或稍后的事件检索期间执行处理之间进行选择时,优先考虑使收集更快。这是因为收集是持续进行的,而检索是按需进行的,可能永远不会发生。

  • 大多数 Performance Schema 表都有索引,这使优化器可以访问除全表扫描之外的执行计划。有关详细信息,请参阅 第 8.2.4 节,“优化性能模式查询”

  • 添加新的检测点很容易。

  • 仪器是版本化的。如果检测实现发生变化,之前检测过的代码将继续工作。这有利于第三方插件的开发人员,因为无需升级每个插件即可与最新的 Performance Schema 更改保持同步。

笔记

MySQLsys模式是一组对象,可以方便地访问性能模式收集的数据。默认情况下sys安装架构。有关使用说明,请参阅第 28 章,MySQL 系统模式