0
点赞
收藏
分享

微信扫一扫

Kafka的保姆级简易安装启动、关闭注意事项、简单使用

搬砖的小木匠 2023-07-13 阅读 76
数据库

最左前缀法则

如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将会部分失效(后面的字段索引失效)

比如在一个 tb_user 表中,有一个联合索引,这个联合索引涉及到三个字段,顺序分别为:profession,agestatus

对于最左前缀法则指的是,查询时,最左变的列,也就是profession必须存在,否则索引全部失效。 如下

select * from tb_user where age = 21 and status = '0';

但是查询时,如果跳过了age这个列,后面的列索引是不会使用的,也就是索引部分生效,如下 

select * from tb_user where profession = '软件工程' and status = '0';

范围查询

联合索引中,出现范围查询(>,<),范围查询右侧的列索引失效。 

select * from tb_user where profession = '软件工程' and age > 30 and status = '0';

范围查询使用> < 时,是会走联合索引,但是像上面这种情况,范围查询右边的status字段是没有走索引的

规避方法: 

但是如果使用 >= 或 <= 时,所有的字段都是走索引的。如下

select * from tb_user where profession = '软件工程' and age >= 30 and status = '0';

所以,在业务允许的情况下,尽可能的使用类似于 >= <= 这类的范围查询,而避免使用 >

举报

相关推荐

0 条评论