MySQL 工作台  / 第 7 章性能工具  /  7.2 性能模式报告

7.2 性能模式报告

基于性能模式的报告通过有用的高级报告提供对 MySQL 服务器操作的洞察。MySQL Workbench 使用 Performance Schema 上的SYS视图生成 20 多个报告来帮助分析 MySQL 数据库的性能。报告有助于分析 IO 热点、发现高成本 SQL 语句以及查看等待统计数据和 InnoDB 引擎指标。有关 SYS 模式的其他信息,请参阅MySQL 系统模式

安装和配置

用于配置和微调性能模式检测的 GUI(参见下图)。最初,这会加载一个Easy Setup选项卡,这对大多数用户来说已经足够了。要启用所有可用的 Performance Schema 工具,请将指针设备暂停在Fully Enabled上,然后单击滑动条上的圆圈。

SYS 模式与 MySQL Server 5.7 及更高版本捆绑在一起,MySQL Workbench 使用该版本。但是,对于 MySQL Server 5.6,Workbench 安装了自己的 SYS 模式捆绑版本。

笔记

保存的摘要查询的大小由 MySQL 服务器决定。

图 7.2 性能模式设置:简易设置

内容在周围的文字中描述。

单击Show Advanced提供了微调 Performance Schema 检测的方法。下图显示了与高级检测相关的选项卡和所选的“简介”选项卡。

图 7.3 性能模式设置:简介

内容在周围的文字中描述。

绩效报告控制

可以使用以下控件查看和导出性能报告数据(参见下图):

  • 导出:从当前性能报告中导出所有条目和相关数据(和列标题),其中包括所有查询和值。打开用于导出的文件对话框。

  • Copy Selected:从当前性能报告中复制单个条目和相关数据(和列标题)。保存到系统的剪贴板。一个例子:

  • 复制查询:复制生成性能报告的 SQL 查询。保存到系统剪贴板。

  • 刷新:刷新(重新加载)性能报告。

绩效报告说明

图 7.4 绩效报告:报表分析

内容在周围的文字中描述。

各个报告显示在以下组中:

Memory Usage

  • Total Memory– 显示分配的总内存。

  • Top Memory by Event– 显示消耗最多内存的事件。

  • Top Memory by User– 显示消耗最多内存的用户。

  • Top Memory by Host– 显示消耗最多内存的主机。

  • Top Memory by Thread– 显示消耗最多内存的线程。

Hot Spots for I/O

  • Top File I/O Activity Report– 显示 I/O 使用最多的文件(以字节为单位)。

  • Top I/O by File by Time– 按文件和延迟显示最高 I/O 使用率。

  • Top I/O by Event Category– 按事件类别显示最高 I/O 数据使用情况。

  • Top I/O in Time by Event Categories – 按事件类别显示最高 I/O 时间消费者。

  • Top I/O by User/Thread– 按用户和线程显示最高的 I/O 时间使用者。

High Cost SQL Statements

  • Statement Analysis– 列出具有各种聚合统计信息的语句。

  • Statements in Highest 5 percent by Runtime– 列出平均运行时间(以微秒为单位)处于最高百分之五的所有语句。

  • Using Temp Tables– 列出所有使用临时表的语句(访问磁盘临时表的百分比最高,然后是内存临时表)。

  • With Sorting– 列出所有已完成排序的规范化语句(按以下优先顺序访问:sort_merge_passes、、 sort_scanssort_rows)。

  • Full Table Scans– 列出执行了全表扫描的语句。访问查询性能和WHERE子句(或子句)。如果没有使用索引,可以考虑为大表添加索引。

  • Errors or Warnings– 列出引发错误或警告的语句。

Database Schema Statistics

  • Schema Object Overview (High Overhead) – 显示每个模式的对象计数。请注意,对于具有大量对象的实例,此报告可能需要较长时间才能执行。

  • Schema Index Statistics– 显示与索引相关的一般统计信息。

  • Schema Table Statistics– 显示与表相关的一般统计信息。

  • Schema Table Statistics (with InnoDB buffer)– 显示带有 InnoDB 缓冲区统计信息的模式表。

  • Tables with Full Table Scans– 查找全表扫描正在访问的表,按扫描的行数(降序)排序。

  • Unused Indexes– 显示自服务器启动或 P_S 数据收集开始以来从未使用过的索引列表。

Wait Event Times (Expert)

  • Global Waits by Time– 按总时间列出排名靠前的全局等待事件,忽略空闲(这可能不是很大)。

  • Waits by User by Time– 按用户及其总时间列出排名靠前的等待事件,忽略空闲(这可能不是很大)。

  • Wait Classes by Time– 按总时间列出排名靠前的等待类,忽略空闲(这可能不是很大)。

  • Waits Classes by Average Time– 按平均时间列出排名靠前的等待类,忽略空闲(这可能不是很大)。

InnoDB Statistics

  • InnoDB Buffer Stats by Schema– 汇总 INFORMATION_SCHEMA.INNODB_BUFFER_PAGE 表的输出,按模式聚合。

  • InnoDB Buffer Stats by Table– 汇总表的输出 INFORMATION_SCHEMA.INNODB_BUFFER_PAGE ,按模式和表名聚合。

User Resource Use

  • Overview– 显示每个用户的资源使用摘要。

  • I/O Statistics– 显示每个用户的 I/O 使用情况。

  • Statement Statistics– 显示每个用户的语句执行统计信息。