美文网首页
DB专题:2.组和索引最左匹配的原理

DB专题:2.组和索引最左匹配的原理

作者: 北交吴志炜 | 来源:发表于2019-02-17 18:33 被阅读0次

图片截自O'Reilly.High.Performance.MySQL.3rd.Edition 第五章

比如有如下表结构,其中有组合索引(lastname,firstname,birthday(dob))


table.png

那么索引的结构如下


222.png

可以看到,索引的指向是按照索引列的顺序进行排序的,比如上图第一行,先按lastname排;上图第三行,lastname相同,按照firstname来排;右下角比如lastname,firstname都相同,那么按照birthday来排序。同理,组合索引的查找,也是先找第一列,再找第二列,最后找第三列。反之,如果上来直接找第二列,是没办法找的,因为不考虑第一列顺序的情况下,第二列其实是乱序的。

总结:最左匹配是由组合索引内部指向节点的组织结构决定的。查询语句只要能最左匹配,就可以用上索引
(这个最左匹配是查询项的概念,比如有(a,b,c)的索引,用户查询语句是c,b,a,其实dbms会将查询语句优化为a,b,c然后来走索引,但是如果查询条件是b,c,那么dbms是无能为力的)

相关文章

  • DB专题:2.组和索引最左匹配的原理

    图片截自O'Reilly.High.Performance.MySQL.3rd.Edition 第五章 比如有如下...

  • 索引优化笔记!

    mysql最左匹配原则如果sql语句中用到了组合索引中的最左边的索引,那么就可以利用这个组合索引去进行匹配 mys...

  • 索引最左前缀匹配

    最左前缀原理 联合索引中查找遵循最左前缀原理:例如,建立如下(a,b,c,d)的联合索引,索引结构会按照a,b,c...

  • 索引

    这道题目考察的知识点是MySQL组合索引(复合索引)的最左优先原则。 最左前缀匹配原则 在mysql建立联合索引时...

  • 5索引

    B-Tree索引 例如key(last_name,first_name,dob) 有效索引全值匹配匹配最左前缀 ...

  • 11.MySQL组合索引的有序性

    组合索引的有序性和最左前缀原理【强制】理解组合索引最左前缀原则,避免重复建设索引,如果建立了(a,b,c),相当于...

  • 7.MySQL优化(2)

    本章要点 1.索引生效2.聚簇索引3.分库分表4.高可用方案 1.索引生效原则 索引生效的情况: 匹配最左前缀 全...

  • mysql索引分类

    常见的索引类型 聚簇索引 非聚簇索引 最左匹配原则 B+树索引 普通索引 唯一索引 主键索引 联合索引 全文索引 ...

  • 索引最左匹配的理解

    作者:沈杰链接:https://www.zhihu.com/question/36996520/answer/93...

  • 索引失效的情况

    1、组合索引不遵循最左匹配原则 2、组合索引前面索引列使用范围查询(<,>,like),会导致后续的索引失效 3、...

网友评论

      本文标题:DB专题:2.组和索引最左匹配的原理

      本文链接:https://www.haomeiwen.com/subject/czxneqtx.html