美文网首页
索引最左前缀匹配

索引最左前缀匹配

作者: 数据100 | 来源:发表于2020-05-25 13:55 被阅读0次

最左前缀原理


联合索引中查找遵循最左前缀原理:
例如,建立如下(a,b,c,d)的联合索引,索引结构会按照a,b,c,d的顺序依次排序建立索引。
输入查询条件:a,b,c,d 可以全部利用索引
输入查询条件:a,b,d 仅可以利用a,b部分索引
输入查询条件:b,c,d 无法利用索引
输入查询条件包括范围查询时,范围列可以用到索引,范围列后面的无法用到索引。
查询条件有函数或表达式时不会用到索引,比如left(String)。
查询条件中字符串为Like匹配时:“abcd%”可以用到索引。

索引选择性


索引的选择性较低时不建议建索引。
所谓索引的选择性(Selectivity),是指不重复的索引值(也叫基数,Cardinality)与表记录数(#T)的比值:
Index Selectivity = Cardinality / #T:

主键优化


在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。
InnoDB使用聚集索引,数据记录本身被存于主索引(一颗B+Tree)的叶子节点上。这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)。
如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。这样就会形成一个紧凑的索引结构,近似顺序填满。由于每次插入时也不需要移动已有数据,因此效率很高,也不会增加很多开销在维护索引上。

相关文章

  • mysql索引总结

    B-Tree索引 适用于全键型、键值范围、键前缀查找 全值匹配 匹配最左前缀 匹配列前缀 匹配范围值 精确匹配某一...

  • 5索引

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

  • 高性能mysql(五)

    1.索引基础 类型 B-Tree:实现上多为B+Tree 优点:支持全值匹配、匹配最左前缀、匹配列前缀、匹...

  • 索引最左前缀匹配

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

  • 索引

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

  • mysql高级

    索引规则 全值匹配我最爱 最佳左前缀法则:如果索引了多列,要遵循最佳左前缀法则,指的是查询从索引的最左前列开始`并...

  • MySQL建索引、查询优化

    索引 最左前缀匹配原则非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)...

  • SQL优化

    查询优化 尽量全值匹配尽量把索引里所有的列都匹配上(where) 最佳左侧原则如果索引了多列,要遵守最左前缀法则。...

  • Mysql语句优化的原则——让你写sql更加顺手

    使用索引的原则: 1.最左前缀匹配原则。 mysql会一直向右匹配直到遇到范围查询(>、<、between、lik...

  • 3:索引最佳实践(常用)

    建表语句 回顾上节(key_len的计算): 1:全值匹配(联合索引) 2:最左前缀法则(联合索引) 3:存储引擎...

网友评论

      本文标题:索引最左前缀匹配

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