EXPLAIN打印中的额外内容 - '不可能在读取const表后注意到'

san*_*a26 8 mysql explain

我有一个名为'million_words'的简单表.它有一行有两列 - > id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY&word VARCHAR(50 NOT NULL.

我运行这个查询 - : EXPLAIN SELECT * FROM million_words WHERE word = '-anon'

Extra然后该列打印:'Impossible WHERE noticed after reading const tables,即使该行明显存在于表中.

什么是wronf

Bha*_*hah 14

来自MySQL文档:

" 不可能在读取const表后注意到 ":
MySQL已经读取了所有const(和系统)表,并注意到WHERE子句始终为false.参考this


该表最多只有一个匹配行,在查询开头读取.因为只有一行,所以优化器的其余部分可以将此行中列的值视为常量.const表非常快,因为它们只读一次.

当比较a的所有部分PRIMARY KEYUNIQUE index常量值时,使用const .参考this