两个表都使用innodb引擎
版本:5.7.14-google-log
版本:5.7.18-0ubuntu0.16.04.1有人能解释一下这种情况吗?
watbbzwu1#
嗯,也不是 EXPLAIN 是在讲述整个故事。在innodb中, SELECT COUNT(*) 没有一个 WHERE 必须进行索引扫描。优化器将选择“最小的”索引,在您的情况下是 PRIMARY KEY .“使用指数”与上述说法一致。但在您意识到表是由pk聚集在其中的数据组成之前,这是一种误导。“select tables optimized away”通常的意思是 EXPLAIN 执行子查询,而不是简单地告诉您它将要做什么(这可能会很慢 EXPLAIN 如果子查询需要很长时间。)我想没有 VIEWs 这里有人吗?还要注意的是,谷歌可能已经做了一些改变。我怀疑ubuntu实际使用了5.7.18。另一个问题。。。在较新的版本中(我不知道什么时候),mysql停止让 EXPLAIN “优化离开”。
EXPLAIN
SELECT COUNT(*)
WHERE
PRIMARY KEY
VIEWs
1条答案
按热度按时间watbbzwu1#
嗯,也不是
EXPLAIN
是在讲述整个故事。在innodb中,
SELECT COUNT(*)
没有一个WHERE
必须进行索引扫描。优化器将选择“最小的”索引,在您的情况下是PRIMARY KEY
.“使用指数”与上述说法一致。但在您意识到表是由pk聚集在其中的数据组成之前,这是一种误导。
“select tables optimized away”通常的意思是
EXPLAIN
执行子查询,而不是简单地告诉您它将要做什么(这可能会很慢EXPLAIN
如果子查询需要很长时间。)我想没有
VIEWs
这里有人吗?还要注意的是,谷歌可能已经做了一些改变。我怀疑ubuntu实际使用了5.7.18。
另一个问题。。。在较新的版本中(我不知道什么时候),mysql停止让
EXPLAIN
“优化离开”。