MySQL 查询统计
为一个已执行的查询收集的重要统计数据,包括时间、临时表、索引、连接等等,都收集在查询统计SQL编辑器结果选项卡中(见下面两个图)。
要求
- 启用查询,并收集性能模式的统计数据。
-
Performance_schema已经启用了语句工具。
SQL编辑器:查询统计
视觉解释计划
通过利用包含在增强型JSON格式中的额外数据,可视化解释功能创建并展示了MySQL EXPLAIN语句的可视化描述。所有EXPLAIN格式,包括标准格式、原始扩展JSON和可视化查询计划,都可以在MySQL Workbench中用于执行查询。
可视化演示使用
在SQL编辑器中执行你的查询,然后从查询结果菜单中选择执行过程,以获得执行计划的可视化解释。执行计划包含一个表格式的解释视图,与你在MySQL客户端运行EXPLAIN时看到的相似,此外还有可视化解释视图,这是默认的。关于MySQL如何执行语句的细节,请参见用EXPLAIN优化查询。
视觉解释公约
视觉解释图应从下到上、从左到右阅读。在后面的图例中概述了用于表示可视化解释计划的各种元素的图形、文本和信息约定。To learn more details, see −
- 图形标准
-
信息性和文字性惯例
第一个图的视觉解释图对以下查询进行了视觉描述。
select * FROM employee_table
一个视觉解释的例子
图形惯例
- 标准方框:表格
-
圆形框:操作,如GROUP和SORT
-
有框方框:子查询
-
菱形:连接
文本和信息约定
-
盒子下面的标准文本:表(或别名)名称
-
盒子下面的粗体字:所使用的键/索引
-
盒子右上方的数字:过滤后使用的表的行数
-
盒子左上方的数字:访问该表的相对成本(需要MySQL 5.7或更高版本)。
-
嵌套循环(或哈希连接)钻石右边的数字:由JOIN产生的行数
-
钻石上方的数字:JOIN的相对成本(需要MySQL 5.7或更高版本)
下表显示了可视化解释图中使用的相关颜色和描述。关于成本估算的更多信息,请参阅《优化器成本模型》。
视觉解释图信息
系统名称 | 颜色 | 视觉图上的文字 | 工具提示相关信息 |
---|---|---|---|
SYSTEM | 蓝色 | 单行:系统常数 | 非常低的成本 |
CONST | 蓝色 | 单行:常数 | 非常低的成本 |
EQ_REF | 绿色 | 唯一键查询 | 低成本 — 优化器能够找到一个索引,用来检索所需的记录。它是快速的,因为索引搜索直接导致了所有行数据的页面 |
REF | 绿色 | 非唯一键查询 | 低-中-如果匹配的行数少,则为低;随着行数的增加,则为高 |
FULLTEXT | 黄色 | 全文索引搜索 | 专门的FULLTEXT搜索。低 — 对于这种专门的搜索要求 |
REF_OR_NULL | 绿色 | 关键词查询+获取NULL值 | 低-中–如果匹配的行数较少;随着行数的增加而增加 |
INDEX_MERGE | 绿色 | 索引合并 | 中等 — 在查询中寻找一个更好的索引选择,以提高性能 |
UNIQUE_SUBQUERY | 橙色 | 唯一键查询到子查询的表中 | 低 — 用于高效的子查询处理 |
INDEX_SUBQUERY | 橙色 | 非唯一键查询到子查询的表中 | 低 — 用于高效的子查询处理 |
RANGE | 橙色 | 索引范围扫描 | 中 — 部分索引扫描 |
INDEX | 红色 | 全索引扫描 | 高 — 特别是对于大型索引 |
ALL | 红色 | 全表扫描 | 非常高 — 对大表来说成本很高,但对小表来说影响不大。没有为该表找到可用的索引,这迫使优化器搜索每一条记录。这也可能意味着搜索范围太广,以至于索引没有用处。 |
UNKNOWN | 黑色 | 未知 | 注意:这是默认的,以防无法确定匹配的情况。 |
结论
在这篇文章中,我们学习了如何在MySQL工作台中获得查询统计信息,以及它的不同特点是什么。