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

时间:2013-02-19 08:57:07

标签: mysql explain

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

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

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

什么是wronf

1 个答案:

答案 0 :(得分:14)

来自MySQL文档

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


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

当您将PRIMARY KEYUNIQUE index的所有部分与常量值进行比较时,会使用

const。请参阅this