0
点赞
收藏
分享

微信扫一扫

组合索引(MySQL查询优化器)

陌岛 2022-04-16 阅读 93
mysql

1. 索引分类

索引字段特性角度分类

  • 主键索引
  • 唯一索引
  • 普通索引
  • 前缀索引(这个不懂)
  • (全文索引,这个基本用不到)

组成索引的字段个数角度分类

  • 单列索引
  • 联合索引(复合索引)

参考:https://zhuanlan.zhihu.com/p/338629505

2. 联合索引概念

对于多个字段的联合索引,如 index(a,b,c) 联合索引,则相当于创建了 a 单列索引,(a,b)联合索引,和(a,b,c)联合索引。

3. explain:SQL语句分析器

  • 如何使用?

    sql语句前加explain

    与索引有关的主要是possible_keys,key,key_len这三项,possible_keys是指可能会用到的索引,key是当前sql使用到的索引,key_len是索引的使用字节数(多列索引根据key_len判断用到了哪些索引)。

4. 多列索引失效情况(最左前缀匹配原则):

  • mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的。
  • 但是如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整(MySQL查询优化)。

参考:https://blog.csdn.net/wdjxxl/article/details/79790421

举报

相关推荐

0 条评论