MySQL性能模式/ MySQL性能模式

第1章MySQL性能架构

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

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

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

  • 性能模式事件与写到服务器二进制日志(描述数据修改)和事件调度器事件(一种存储程序)的事件不同。

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

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

  • PERFORMANCE_SCHEMA存储引擎使用仪器分在服务器源代码中。

  • 中收集的事件存储在表中performance_schema数据库。可以使用选择与其他表类似的语句。

  • 中的表可以动态修改性能架构配置performance_schema数据库的SQL语句。配置更改会立即影响数据收集。

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

  • 监视在MySQL支持的所有平台上都可用。

    可能会应用一些限制:计时器的类型可能因平台而异。应用于存储引擎的工具可能不会实现于所有存储引擎。各第三方引擎的仪表检测由引擎维护人员负责。另请参阅性能模式限制

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

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

  • 激活Performance Schema不会改变服务器行为。例如,它不会导致线程调度改变,也不会导致查询执行计划(如解释)改变。

  • 服务器监视持续地、不引人注意地进行,开销非常小。激活性能架构不会使服务器不可用。

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

  • 即使性能架构内部发生故障,服务器代码的执行也会正常进行。

  • 当需要在最初的事件收集期间执行处理或在稍后的事件检索期间执行处理时,优先考虑提高收集速度。这是因为收集是持续进行的,而检索是按需进行的,可能根本不会发生。

  • 大多数Performance Schema表都有索引,这使优化器可以访问执行计划,而不是全表扫描。有关更多信息,请参见优化性能模式查询

  • 添加新的仪表点很容易。

  • 仪表是版本。如果插装实现发生更改,以前插装的代码将继续工作。这有利于第三方插件的开发人员,因为不必升级每个插件以与最新的性能架构更改保持同步。

请注意

MySQLsysschema是一组对象,提供对Performance schema收集的数据的方便访问。的sys默认情况下安装Schema。有关使用说明,请参见MySQL系统模式