素材牛VIP会员
<高性能mysql> 索引相关的疑问
 二***了  分类:SQL代码  人气:1383  回帖:1  发布于6年前 收藏

下图中标红的部分表达的是什么意思?

Extra中的Using where 是指在索引中使用了过滤? 还是说在索引中筛选完之后使用了过滤? 看不太懂

个人理解 type为range 并且 extra中有using index 所以肯定只是扫描了索引, 并且using where是在索引中进行的过滤 ;
只有当type为all,extra中只有using where的时候, 才是回表扫描并在表中进行的过滤!
不知道理解的对么?

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv1 新人
海***人 Web前端工程师 6年前#1

你看看 mysql 架构,存储引擎在最底层,actor_id<5 存储引擎就 using index(actor_id)了,但是引擎使用的索引不能过滤所有无效行(<>这个条件不能发送给存储引擎),所以获得数据返回给mysql服务层,这一层using where 解析 <> 1 。
mysql5.6之后的ICP特性,可以把检查条件比如<>发送给存储引擎层,不符合条件的数据不读取。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取