zoukankan      html  css  js  c++  java
  • mysql索引之最左前缀法则

    1:最左前缀法则

      如果你的索引有多个字段,如图1所示,索引字段有 kq_time, card_no, kq_type这三个字段(最左前缀就是按这三个字段的前后顺序进行排序的)

     如果是三个查询条件中三个字段都用到了,如图二(严格按照最左前缀原则,查询条件顺序是使用了三个字段(kq_time,card_no,kq_type)

     这是图二是使用了全部索引,三个字段的索引都用到了,key_len的长度是165,看图三每个字段对应的长度,kq_time的类型是datetime长度是8,card_no的类型是varchar长度是50,kq_type的类型是varchar长度是1,所有总长度是8+(50*3+2)+(1*3+2)=165(这个值是预估值,有时候不准确,下面就会出现此情况),所以所有的索引都走了,索引长度计算看图三

     

    下面的图四,遵守了最左前缀原则,都走了部分索引kq_time(遵守了最左前段法则,查询条件顺序kq_time)

     再看图五,走了部分索引kq_time和card_no(遵守了最左前段法则,查询条件顺序kq_time和card_no)

    图六 (没有遵守最左前缀原则,查询条件跳过kq_time字段,使用了后面的两个字段,所有不走索引)

    图七(遵守了最左前缀原则,kq_time有了,后面没有card_no,直接使用了kq_type,所有索引只走了kq_time)

     

     在最后,总结一下什么最左前缀原则:查询从索引的最左前列开始并且不跳过索引中的列,通俗易懂的来说就是:带头大哥不能死、中间兄弟不能断

  • 相关阅读:
    Cannot find module 'webpack'
    Failed to read auto-increment value from storage engine
    laravel框架查看执行过的sql语句
    windows与虚拟机共享文件夹设置
    csv导出文件中有html
    特定中文字符串正则匹配
    运动跟踪等算法的解释
    自控力这本书的读后感
    提取肤色信息原理及操作——opencv
    那些年我们排过的序之希尔排序
  • 原文地址:https://www.cnblogs.com/shuxiaosheng/p/12976922.html
Copyright © 2011-2022 走看看