1.简单介绍

using index 和using where只要使用了索引我们基本都能经常看到,而using index condition则是在mysql5.6后新加的新特性,我们先来看看mysql文档对using index condition的描述

附上mysql文档链接:https://dev.mysql.com/doc/refman/5.7/en/index-condition-pushdown-optimization.html

简单来说,mysql开启了ICP的话,可以减少存储引擎访问基表的次数

下面来简单的介绍一下这三者的区别

using index :使用覆盖索引的时候就会出现

using where:在查找使用索引的情况下,需要回表去查询所需的数据

using index condition:查找使用了索引,但是需要回表查询数据

using index & using where:查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据

以上四点就能看出它们之前的区别,或许有部分人都存在疑惑 using index & using where 和using index condition那个比较好,从上面的的解释中就能看出是前者比较好,毕竟不需要回表查询数据,效率上应该比较快的

下面是在stackoverflow中找到的答案:

附上stackoverflow链接:https://stackoverflow.com/questions/28759576/mysql-using-index-condition-vs-using-where-using-index

2.测试验证

(1)建立一个userinfo表,其字段信息如下图所示:

(2)查询测试

(2.1)测试Using index

覆盖索引,但是没有使用查询条件,所以只有Using index

(2.2)测试Using index & Using where

覆盖索引,但是后面带了查询条件,所以也用了Using where查询索引

(2.3)测试Using index condition

因为本人用的是mysql版本是5.5,所以显示了Using where,如果用5.6以上的版本应该就会显示Using index condition,个人认为,Using index condition其实就是优化了Using where这种情况,有条件的也可以自己写个demo测试一下

以上皆为个人理解,如果有理解错的地方,欢迎指出

最新文章

  1. HDU1434(终于用优先队列a了一题。。。了解度+1)
  2. 对于大数据量的Json解析
  3. APP更新名称
  4. vsftpd 修改默认目录
  5. [Asp.net mvc] 在Asp.net mvc 中使用MiniProfiler
  6. html+css源码之实现登录弹出框遮罩层效果
  7. 第二次作业----自学c++的选择与计划
  8. Eclipse 发布网站到linux的tomcat
  9. 【问题解决记录】Error: Cannot find module '@ionic/app-scripts'
  10. js 消抖(debounce)与节流(throttle)
  11. Docker学习笔记 - Docker容器的网络基础
  12. C#学习-属性是对字段的扩展
  13. 开始写博客,学习Linq(4)
  14. Adobe Acrobat Pro DC破解
  15. 关于Java类和包的那些事
  16. dj 中间件
  17. (转)Python3.5——装饰器及应用详解
  18. HDU 4764:Stone(巴什博弈)
  19. 10G个64bit整数,找出中位数
  20. word2vec参数

热门文章

  1. JavaFx入门(一)
  2. windows使用放大镜快速放大屏幕局部
  3. 【AMAD】itsdangerous -- 用安全的方式把可信赖的数据传入不可信赖的环境,或者相反
  4. 【DSP开发】【计算机视觉】TI 视觉软件开发套件ADAS
  5. WebMvcConfigurationSupport与WebMvcConfigurer的关系
  6. 其他子配置文件:local.conf
  7. Elasticsearch-日期类型
  8. [爬虫] requests库
  9. redis配置文档细节问题
  10. python3.7 安装Scrapy 失败问题