聊聊索引的最左前缀原则

75 阅读1分钟

聊聊索引的最左前缀原则

什么是最左前缀法则?

  • 首先最左前缀法则体现在联合索引上,需要在创建和使用上遵守,否则可能导致索引失效。
  • 如最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。
  • 如果跳跃某一列,索引将部分失效(后面的字段索引失效)。跳过的话,后面的排序就无从说起了。
  • 注:左前缀法则和使用的语句顺序无关,只要存在即可

创建

  • 将最常使用的索引放在联合索引的最左侧,以便于使用的时候符合原则。

使用演示

# 创建普通索引  名字     从  mydb数据库  字段为
create index idx_a_b_c on mydb(uid,username,password);
  • 不使用uid将导致username和password失效
  • 不使用username将导致password失效,uid有效
  • 不使用pasword,uid,username有效

左前缀法则体现在联合索引上,但在语句上也有该思想的体现,如where和having,可以在where过滤的数据不应该留到having中