zoukankan      html  css  js  c++  java
  • 组合索引相关介绍

    当多条件查询的时候我们可以使用组合索引,查询效率会更高,因为当有多个单列索引时,MySQL只能用到其中那个它认为最有效率的单列索引。

    最左前缀原则?

    组合索引遵循最左前缀原则,这个最左前缀可以是联合索引的最左N个字段,也可以是字符串索引的最左M个字符。好比(a,b)组成的联合索引,只有当a和b的联合查询或者基于a的单独查询会用到索引,基于b的单独查询是用不到索引的。

    如何安排组合索引内的字段顺序?

    好比如果你想拿a,b两个字段当组合索引,需要考虑a和b谁在前的问题。

    (1)第一原则是,如果通过调整顺序,可以少维护一个索引,那么这个顺序往往就是需要优先考虑采用的。如果既有联合查询,又有基于a的查询(没有基于b的单独查询),如果我们使用(b,a)这个联合索引的话,在查询条件里面只有b的语句里是用不到索引的,还得维护多一个a索引,这时应该调整顺序将a放在前面。

    (2)第二原则是空间,如果既有联合查询,又有基于a、b各自的查询呢?如果查询条件里面只有b的语句,是无法使用(a,b)这个联合索引的,这时候你不得不维护另外一个索引,也就是说你需要同时维护(a,b)、(b) 这两个索引。这时候,我们要考虑的原则就是空间了。比如a字段是比b字段占用空间大 ,那我就建议你创建一个(a,b)的联合索引和一个b的单字段索引。

     

    希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。更多好文推荐,请关注我的微信公众号--JustJavaIt
  • 相关阅读:
    PHP反射
    Ramda函数式编程之PHP
    双因素算法存疑
    百度编辑器复制微信图片无法保存
    go语言可变参数的坑
    xorm的sql builder
    vue前后分离动态路由和权限管理方案
    分布式唯一id生成器的想法
    Java IO 之 InputStream源码
    图解 & 深入浅出Java初始化与清理:构造器必知必会
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/15203019.html
Copyright © 2011-2022 走看看