问答

MySQL:利用索引进行count,为何 要回表?

作者:admin 2021-04-10 我要评论

有一个表,有索引(a,b) 下面两个语句 count(*) from table a between #{A1} and #{A2}; count(*) from table a=#{A} and b between #{B1} and #{B2}; 看到执行计...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

有一个表,有索引(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仅表示对数据行的过滤,与是否回表查询无关

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器