有一个表,有索引(a,b)
下面两个语句
count(*) from table a between #{A1} and #{A2};
count(*) from table a=#{A} and b between #{B1} and #{B2};
看到执行计划都是extra Using where; Using index
哪怕这个索引是唯一索引,
我理解这里会用到索引进行count,为何要回表?
using index :使用覆盖索引的时候就会出现
using where:在查找使用索引的情况下,需要回表去查询所需的数据
using index condition:查找使用了索引,但是需要回表查询数据
using index & using where:查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据
所以那你的这个是不需要回表的
Using where
仅表示对数据行的过滤,与是否回表查询无关