zoukankan      html  css  js  c++  java
  • mysql explain解析一 extra中的using index,using where,using index condition

    该文章已重新编辑更新,请点击跳转查看

    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测试一下

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

  • 相关阅读:
    存储型 XSS 原理复现
    反射型 XSS 原理复现
    HTTP 简易理解
    Markdown 流程图语法
    Dirsearch 快速开始
    sqlmap 快速开始
    SQL 注入原理
    XSS 原理
    51nod 1835 完全图
    11.5 AM 请求
  • 原文地址:https://www.cnblogs.com/zhp-king/p/7250810.html
Copyright © 2011-2022 走看看