MySQL工作台发布说明
visual explain特性生成并显示一个MySQL的可视化表示解释
语句,使用扩展JSON格式的扩展信息。MySQL工作台提供了所有的解释
已执行查询的格式,包括原始扩展JSON、传统格式和可视化查询计划。
要查看可视化的explain执行计划,请在SQL编辑器中执行查询,然后选择执行计划在查询结果选项卡中。执行计划默认为Visual Explain
,但它也包括a表格解释
视图,与您在执行时看到的类似解释
在MySQL客户端。有关MySQL如何执行语句的信息,请参见使用EXPLAIN优化查询。
可视化解释图的执行顺序是从下到上,从左到右。下面的图表示例提供了用于表示可视化解释计划各方面的图形、文本和信息约定的概述。具体信息请参见:
第一个图中的可视化解释图显示了以下查询的可视化表示。
选择CONCAT(客户。last_name, ', ', customer.first_name)作为客户,地址。电话,电影。标题从租赁内JOIN客户租赁。customer_id =客户。customer_id客户上的内部连接地址。address_id =地址。address_id内部连接库存租赁。inventory_id =库存。inventory_id库存上的内连接膜。film_id =电影。film_id出租的地方。return_date为空,rental_date +间隔胶片。rental_duration DAY < CURRENT_DATE() LIMIT 5;
下一个可视化解释图显示了包含散列连接的查询的可视化表示。在MySQL工作台8.0.22之前,哈希连接用a表示块嵌套循环
diamond用于MySQL 8.0.19(或更早版本)执行的查询。
SELECT first_name, last_name FROM actor FULL JOIN film_actor WHERE " = film_actor.actor_id;
图形的约定
标准框:表
圆角框:操作,如分组和排序
框架箱:子查询
钻石:连接
文本和信息约定
下面的标准文本框:表(或别名)名称
框下面的粗体文本:所使用的键/索引
框右上角的数字:过滤后从表中使用的行数
左上角的数字:访问该表的相对成本(需要MySQL 5.7或更高)
嵌套循环(或散列联接)右侧的数字菱形:联接产生的行数
菱形上面的数字:连接的相对成本(需要MySQL 5.7或更高)
下表显示了可视化解释图中使用的相关颜色和描述。有关成本估算的更多信息,请参见优化器成本模型。
表7.1可视化解释图信息
系统名称 | 颜色 | 视觉图上的文字 | 工具提示相关信息 |
---|---|---|---|
系统 | 蓝色的 | 单行:系统常数 | 成本很低 |
常量 | 蓝色的 | 单行:常数 | 成本很低 |
EQ_REF | 绿色 | 唯一键查找 | 低成本——优化器能够找到用于检索所需记录的索引。它之所以快,是因为索引搜索直接指向包含所有行数据的页面 |
裁判 | 绿色 | 非唯一键查找 | Low-medium——如果匹配的行数较少,则为低;随着行数的增加而增加 |
全文 | 黄色的 | 全文索引搜索 | 专门的全文搜索。低——针对这个特殊的搜索需求 |
REF_OR_NULL | 绿色 | 键查找+获取空值 | Low-medium—如果匹配的行数较少;随着行数的增加而增加 |
INDEX_MERGE | 绿色 | 索引合并 | Medium——在查询中寻找更好的索引选择以提高性能 |
UNIQUE_SUBQUERY | 橙色 | 子查询表中的唯一键查找 | Low——用于高效的子查询处理 |
INDEX_SUBQUERY | 橙色 | 子查询表中的非唯一键查找 | Low——用于高效的子查询处理 |
范围 | 橙色 | 索引范围扫描 | Medium——部分索引扫描 |
指数 | 红色的 | 全索引扫描 | 高——尤其是对大型指数而言 |
所有 | 红色的 | 全表扫描 | 非常高——对于大桌子来说非常昂贵,但是对于小桌子的影响较小。没有为表找到可用的索引,这迫使优化器搜索每一行。这也可能意味着搜索范围太广,索引将毫无用处。 |
未知的 | 黑色的 | 未知的 | 注意:这是默认值,以防无法确定匹配 |