MySQL联合索引or_MySQL联合索引命中条件

MySQL联合索引or_MySQL联合索引命中条件转于:https://blog.csdn.net/claram/article/details/77574600首先明确:为什么要用联合索引?对于查询语句“SELECTE.*FROMEWHEREE.e1=1ANDE.e3=2”涉及到两列,这个时候我们一般采用一个联合索引(e1,e3);而不用两个单列索引,这是因为一条查询语句往往应为mysql优化器的关系只用一个索引,就算你有两个索…

大家好,又见面了,我是你们的朋友全栈君。

转于:https://blog.csdn.net/claram/article/details/77574600

首先明确:为什么要用联合索引?

对于查询语句“SELECT E.* FROM E WHERE E.e1=1 AND E.e3=2”涉及到两列,这个时候我们一般采用一个联合索引(e1, e3);而不用两个单列索引,这是因为一条查询语句往往应为mysql优化器的关系只用一个索引,就算你有两个索引,他也只用一个;在只用一个的基础之上,联合索引是会比单列索引要快的;

下面讲讲联合索引的使用规则和哪些情况会命中不了联合索引

示例如下。首先创建表:

CREATE TABLE E (e1 INT, e2 VARCHAR(9), e3 INT, PRIMARY KEY(e1, e3));

这样就建立了一个联合索引:e1,e3

测试数据

INSERT INTO E

(e1, e2, e3)

VALUES(1, ‘aa’, 2);

触发联合索引是有条件的:

1、使用联合索引的全部索引键,可触发索引的使用。

例如:SELECT E.* FROM E WHERE E.e1=1 AND E.e3=2

2、使用联合索引的前缀部分索引键,如“key_part_1 常量”,可触发索引的使用。

例如:SELECT E.* FROM E WHERE E.e1=1

3、使用部分索引键,但不是联合索引的前缀部分,如“key_part_2 常量”,不可触发索引的使用。

例如:SELECT E.* FROM E WHERE E.e3=1

4、使用联合索引的全部索引键,但索引键不是AND操作,不可触发索引的使用。

例如:SELECT E.* FROM E WHERE E.e3=2 OR E.e1=1

以上通过explain测试即可看出效果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146056.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Vue菜鸟教程

    Vue框架快速入门1.Vue的认识1.1什么是Vue?Vue是一个开源的javascript框架,并且Vue支持mvc和mvvm两种模式。Vue是一个构建数据驱动的web界面的渐进式框架。采用自底向上增量开发的设计。Vue.js的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件,是又一个js库。MVC:Model(模型),View(视图),Controller(…

  • java实体entity转map对象[通俗易懂]

    java实体entity转map对象[通俗易懂]实体转对象方法一,一句搞定,直接返回map对象:importorg.springframework.cglib.beans.BeanMap;BeanMap.create(entityObj);方法二:利用反射——详见原文

  • mb10整流桥参数_kbp204整流桥参数

    mb10整流桥参数_kbp204整流桥参数编辑-ZMB10F在MBF-4封装里采用的4个芯片,其尺寸都是50MIL,是一款小方桥、贴片桥堆。MB10F的浪涌电流Ifsm为35A,漏电流(Ir)为5uA,其工作时耐温度范围为-55~150摄氏度。MB10F采用GPP芯片材质,里面有4颗芯片组成。MB10F的电性参数是:正向电流(Io)为1A,反向耐压为1000V,正向电压(VF)为1.0V,恢复时间(Trr)达到500ns,其中有4条引线。型号:MB10F封装:MBF-4(SOP-4)特性:小方桥、贴片桥堆、超薄体电性参数

  • Struts+hibernate+Spring的整合方法

    Struts+hibernate+Spring的整合方法

  • OCP-1Z0-051-标题决心-文章2称号

    OCP-1Z0-051-标题决心-文章2称号

  • Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法

    Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法关于conda安装matplotlib报错最近在师姐机器上跑实验的时候,想利用matplotlib包来绘制损失曲线图,安装过程中碰到了一些小麻烦,感觉之前好像也碰到过类似的问题,所以这次记录下来系统版本:Windows10python包管理工具:conda4.7.11python版本:3.7.4

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号