这解释
声明产生额外的(“延长“)不属于的信息解释
输出,但可以通过发出a来查看显示警告
声明后面解释
。截至MySQL 8.0.12,可提供扩展信息选择
那删除
那插
那代替
, 和更新
陈述。在8.0.12之前,仅适用于此选择
陈述。
这信息
价值显示警告
输出显示优化器如何符合表和列名选择
声明,什么选择
在应用重写和优化规则的应用之后,以及关于优化过程的其他注意事项。
扩展信息可显示显示警告
声明后面解释
仅生产选择
陈述。显示警告
显示其他可解释的陈述的空结果(删除
那插
那代替
, 和更新
)。
这是一个延长的例子解释
输出:
MySQL>解释选择T1.a,t1.a(从t2中选择t2)从t1 \ g ****************************** 1.行*************************** ID:1 Select_type:主表:T1类型:索引Delact_keys:null键:主键_len:4 ref:null行:4过滤:100.00额外:使用索引*************************** 2.行*************************** ID:2 Select_type:子查询表:T2类型:索引Delact_keys:key:key_len:5 ref:null行:3过滤:100.00额外:使用索引2行,1条警告(0.00秒)MySQL> Show Warnings \ G ***************************1.行***************************级别:注释代码:1003留言:/ *选择#1 * /选择`test`。`t1`a`a`作为'a`,(`测试``,``a`,`测试``````a`((/ * select#2* /选择`test````a`从`的测试```st2`,(`test`.``t1``a`在<临时表>上在哪里((`test`.`t1``a` =`物质化 - subquery``a`a`a`))))“t1.a(从t2从t2选择t2)``。套装(0.00秒)
因为陈述显示显示警告
可能包含特殊标记,以提供有关查询重写或优化器操作的信息,该语句不一定是有效的SQL,而不是要执行的。输出还可以包括行信息
提供有关优化器采取的操作的额外非SQL解释性说明的值。
以下列表介绍了可以在显示的扩展输出中显示的特殊标记显示警告
:
一个自动生成临时表的密钥。
( expr.
)执行一次表达式(例如标量子查询),并且将结果值保存在内存中以供以后使用。对于由多个值组成的结果,可以创建临时表和
<临时表>
显示了。<存在>(
查询片段
)子查询谓词被转换为一个
存在
谓词和子查询被转换,使其可以与之一起使用存在
谓词。( 查询片段
)这是一个内部优化器对象,没有用户意义。
( 查询片段
)使用索引查找处理查询片段以查找限定行。
( 状况
那Expr1.
那Expr2.
)如果条件为真,请评估
Expr1.
, 除此以外Expr2.
。( expr.
)测试验证表达式不评估的测试
空值
。( 查询片段
)使用子查询物化。
“物化 - 子查询”。
col_name.
对列的引用
col_name.
在物以来的内部临时表中,以将结果保持为评估子查询。( 查询片段
)使用主键查找处理查询片段以查找限定行。
( expr.
)这是一个内部优化器对象,没有用户意义。
/* 选择#
N
* /select_stmt.
这
选择
与非扩展中的行相关联解释
输出有一个ID
的价值N
。offer_tables.
半加入(inner_tables.
)半轴操作。
inner_tables.
显示未拔出的表格。看第8.2.2.1节“使用Semijoin转换进行优化和存在的子查询谓词”。<临时表>
这表示创建的内部临时表以缓存中间结果。
当一些表格中const
或者系统
类型,涉及来自这些表的列的表达式由优化程序提前评估,并且不是显示的语句的一部分。但是,有了格式= json.
, 一些const
表访问显示为一个裁判
访问使用const值的访问。