• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 位置: MySQL 8 中文手册

    MySQL 性能模式

    MySQL Performance Schema是一种用于在较低级别监视MySQL Server执行的功能。性能架构具有以下特征:

    • 性能架构提供了一种在运行时检查服务器内部执行的方法。它是使用PERFORMANCE_SCHEMA存储引擎和performance_schema数据库来实现的。性能模式主要关注性能数据。这与INFORMATION_SCHEMA用于检查元数据的有所不同。
    • 性能架构监视服务器事件。一个“事件”是什么,该服务器确实需要时间和被装备,使时序信息可以收集。通常,事件可以是函数调用,等待操作系统,SQL语句执行的阶段(例如解析或排序)或整个语句或语句组。通过事件收集,可以访问有关服务器和多个存储引擎的同步调用(例如互斥),文件和表I / O,表锁等信息。
    • 性能架构事件不同于写入服务器二进制日志(描述数据修改)和事件调度程序事件(是存储程序的一种)的事件。
    • 性能架构事件特定于MySQL服务器的给定实例。性能模式表被认为是服务器本地的,对它们的更改不会被复制或写入二进制日志。
    • 当前事件以及事件历史记录和摘要都可用。这使您能够确定执行检测活动多少次以及花费多少时间。事件信息可用于显示特定线程的活动,或与特定对象(例如互斥锁或文件)关联的活动。
    • PERFORMANCE_SCHEMA存储引擎使用收集事件数据“检测点”在服务器的源代码。
    • 收集的事件存储在performance_schema数据库的表中。可以SELECT像其他表一样使用语句查询这些表。
    • performance_schema通过使用SQL语句更新数据库中的表,可以动态修改Performance Schema配置。配置更改会立即影响数据收集。
    • 性能架构中的表是不使用永久磁盘存储的内存中表。从服务器启动时开始重新填充内容,并在服务器关闭时将其丢弃。
    • 在MySQL支持的所有平台上都可以进行监视。

      可能存在一些限制:计时器的类型可能因平台而异。适用于存储引擎的工具可能未对所有存储引擎都实现。每个第三方引擎的仪器维护是引擎维护者的责任。另请参见“对性能模式的限制”。

    • 通过修改服务器源代码以添加工具来实现数据收集。与其他功能(例如复制或事件计划程序)不同,没有与性能架构关联的单独线程。

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

    • 激活性能架构不会导致服务器行为发生任何变化。例如,它不会导致线程调度发生变化,也不会导致查询执行计划(如所示EXPLAIN)发生变化。
    • 服务器监视是连续不断地进行的,开销很小。激活性能架构不会使服务器不可用。
    • 解析器保持不变。没有新的关键字或语句。
    • 即使性能模式在内部失败,服务器代码的执行也会正常进行。
    • 如果在最初在事件收集期间执行处理或稍后在事件检索期间执行处理之间有选择,则优先考虑使收集速度更快。这是因为收集正在进行中,而检索是按需进行的,可能根本不会发生。
    • 大多数性能模式表都有索引,这使优化器可以访问除全表扫描之外的执行计划。有关更多信息,请参见“优化性能模式查询”。
    • 添加新的检测点很容易。
    • 仪表版本化。如果检测实施更改,则先前检测的代码将继续起作用。这使第三方插件的开发人员受益,因为不必升级每个插件即可与最新的性能架构更改保持同步。
    注意

    MySQL sys模式是一组对象,可方便地访问由Performance模式收集的数据。该sys模式是默认安装的。有关用法说明,请参见MySQL sys模式