两个表都使用innodb引擎
版本:5.7.14-Google日志
版本:5.7.18-0ubuntu0.16.04.1
有人可以解释这种情况吗?
答案 0 :(得分:0)
好吧,EXPLAIN
都没有讲完整的故事。
在InnoDB中,没有SELECT COUNT(*)
的{{1}}必须进行索引扫描。优化程序将选择“最小”索引,在您的情况下为WHERE
。
“使用索引”与以上陈述相同。但这会误导您,直到您意识到表是由其中包含PK的数据组成的。
“选择经过优化的表”通常意味着PRIMARY KEY
执行子查询,而不是简单地告诉您它要做什么。 (如果子查询花费很长时间,则EXPLAIN
的速度可能会很慢。)
我认为这里不涉及EXPLAIN
吗?
还请注意,Google可能已进行了一些更改。我怀疑Ubuntu几乎照样使用了5.7.18。
另一个问题...在较新的版本中(我不知道何时),MySQL停止让VIEWs
“优化”。