MySQL 中的查询统计
在“查询统计”SQL 编辑器结果选项卡中收集了为执行的查询收集的重要统计信息,包括时间、临时表、索引、联接等(请参阅以下两张图)。
需求
启用查询并收集性能模式统计信息。
performance_schema 已启用语句检测。
SQL 编辑器:查询统计
可视化解释计划
通过利用增强型 JSON 格式中包含的附加数据,可视化解释功能创建并呈现 MySQL EXPLAIN 语句的可视化描述。所有 EXPLAIN 格式(包括标准格式、原始扩展 JSON 和可视化查询计划)在 MySQL Workbench 中都可用于执行的查询。
直观演示用法
在 SQL 编辑器中执行您的查询,然后从查询结果菜单中选择“执行过程”以接收执行计划的可视化解释。执行计划包含类似于在 MySQL 客户端中运行 EXPLAIN 时看到的表格解释视图,以及可视化解释视图(这是默认视图)。有关 MySQL 如何执行语句的详细信息,请参阅使用 EXPLAIN 优化查询。
可视化解释约定
应从下到上、从左到右阅读可视化解释图。以下图例中给出了用于表示可视化解释计划各个元素的图形、文本和信息约定概述。要了解详细信息,请参阅 -
图形标准
信息和文本约定
第一张图的可视化解释图提供了以下查询的可视化描述。
select * FROM employee_table
可视化解释示例
图形约定
标准框:表
圆角框:操作(如 GROUP 和 SORT)
带边框的框:子查询
菱形:联接
文本和信息约定
框下方的标准文本:表(或别名)名称
框下方的粗体文本:使用的键/索引
框右上方的数字:筛选后从表中使用的行数
框左上方的数字:访问该表的相对成本(需要 MySQL 5.7 或更高版本)
嵌套循环(或哈希联接)菱形右边的数字:联接产生的行数
菱形上方的数字:联接的相对成本(需要 MySQL 5.7 或更高版本)
下表显示了可视化解释图中使用的关联颜色和描述。有关成本估算的更多信息,请参阅优化器成本模型。
可视化解释图信息
系统名称 |
颜色 |
可视化图上的文本 |
工具提示相关信息 |
|---|---|---|---|
SYSTEM |
蓝色 |
单行:系统常量 |
成本非常低 |
CONST |
蓝色 |
单行:常量 |
成本非常低 |
EQ_REF |
绿色 |
唯一键查找 |
低成本 - 优化器能够找到可用于检索所需记录的索引。它速度很快,因为索引搜索直接指向包含所有行数据的页面 |
REF |
绿色 |
非唯一键查找 |
中低 - 如果匹配的行数较少,则为低;随着行数的增加,成本会更高 |
FULLTEXT |
黄色 |
全文索引搜索 |
专门的全文搜索。低 - 针对此专门的搜索需求 |
REF_OR_NULL |
绿色 |
键查找 + 获取 NULL 值 |
中低 - 如果匹配的行数较少,则为低;随着行数的增加,成本会更高 |
INDEX_MERGE |
绿色 |
索引合并 |
中等 - 在查询中查找更好的索引选择以提高性能 |
UNIQUE_SUBQUERY |
橙色 |
对子查询的表进行唯一键查找 |
低 - 用于高效的子查询处理 |
INDEX_SUBQUERY |
橙色 |
对子查询的表进行非唯一键查找 |
低 - 用于高效的子查询处理 |
RANGE |
橙色 |
索引范围扫描 |
中等 - 部分索引扫描 |
INDEX |
红色 |
完整索引扫描 |
高 - 尤其对于大型索引 |
ALL |
红色 |
完整表扫描 |
非常高 - 对于大型表来说成本非常高,但对小型表的影响较小。找不到表中可用的索引,这迫使优化器搜索每一行。这也可能意味着搜索范围非常广,以至于索引毫无用处。 |
UNKNOWN |
黑色 |
未知 |
注意:这是默认值,如果无法确定匹配项,则使用此值 |
结论
在本文中,我们学习了如何在 MySQL Workbench 中获取查询统计信息,以及同时了解其不同特征。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP