首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么额外的是"using where;using index“而不是"using index”

为什么额外的是"using where;using index“而不是"using index”
EN

Stack Overflow用户
提问于 2019-06-16 11:24:33
回答 1查看 59关注 0票数 0

为什么额外的是“使用where;使用索引”而不是“使用索引”。

代码语言:javascript
复制
       CREATE TABLE `pre_count` (                
         `count_id` varchar(38) NOT NULL,        
         `cam_id` varchar(38) NOT NULL,       
         `count_time` datetime NOT NULL,         
         PRIMARY KEY (`cam_id`,`count_time`)  
       ) ENGINE=InnoDB DEFAULT CHARSET=utf8      

解释select count_time from pre_count where cam_id = '56849645645645646'

结果是:

代码语言:javascript
复制
1   SIMPLE  pre_count   ref PRIMARY PRIMARY 116 const   1   Using where; Using index
EN

回答 1

Stack Overflow用户

发布于 2019-06-16 11:33:01

这仅仅意味着WHERE子句中的条件将用于限制查询返回的行。如果在EXPLAIN额外语句中没有"Using where“,那么查询将不会限制行。

这就是手册上的意思:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html#explain-extra-information

WHERE子句用于限制要与下一个表匹配或发送到客户端的行。除非您特别打算从表中提取或检查所有行,否则如果附加值没有使用where并且表连接类型为all或index,则查询中可能会出现错误。

我可以发誓,我看到过在解释报告中缺少"Using where“的情况,即使查询确实使用了索引并限制了要返回的行。

我不得不得出结论,对于所有类型的行限制,“使用where”的报告并不可靠。

其他人已经注意到“使用where”的含义令人困惑或不一致:https://bugs.mysql.com/bug.php?id=30733

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56615824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档