接上篇文章《MySQL执行计划分析(EXPLAIN)之type字段详细介绍说明》,这篇文章奶嘴就来聊聊在MySQL执行计划(EXPLAIN)另一个比较重要的字段Extra。
Extra字面意思为额外的信息,但其实在MySQL优化的工作中,这个字段输出的信息也非常之重要,下面奶嘴就位大家详细解析下该字段可能会出现哪些值,又有什么具体的含义。
Child of 'table' pushed join@1
这个表被引用为可以下推到NDB内核的连接中的表的子表。 只适用于MySQL NDB群集7.2及更高版本,当启用了下推连接时。
const row not found
对于SELECT … FROM tbl_name之类的查询,该表为空。
Deleting all rows
对于DELETE,一些存储引擎(如MyISAM)支持一个处理程序方法,该方法以一种简单而快速的方式删除所有表行。如果引擎使用此优化,则会显示此额外值。
Distinct
MySQL正在寻找不同的值,所以当它找到第一个匹配的行后,它停止为当前行组合搜索更多的行。
FirstMatch
对tbl_name进行了semi-join firstmatch优化,常见于where字句含有in()类型的子查询。如果内表的数据量比较大,就可能出现这个。
Full scan on NULL key