#青训营笔记创作活动#
2023/2/2 打卡 day3

juejin.cn

最左匹配原则就是指在联合索引中,如果你的 SQL 语句中用到了联合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个联合索引去进行匹配。

最左匹配原则顾名思义:最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、<、between、like)就会停止匹配。最左缀匹配原则的最重要的就是联合索引的第一个字段。

select * 不是造成索引失效的直接原因 大部分原因是 where 后边条件的问题 但是还是尽量少去使用select * 多少还是会有影响的。

范围查找有概率索引失效但是在特定的情况下会生效 范围小就会使用 也可以理解为 返回结果集小就会使用索引

只要是影响到索引列的值,索引就会失效(函数/计算)

索引的时候和查询范围关系也很大,范围过大造成索引没有意义从而失效

在 WHERE 子句中,如果在 OR 前的条件列是索引列,而在 OR 后的条件列不是索引列,那么索引会失效。从执行计划的结果看,是走了全表扫描。优化方式就是在 Or 两边的字段都加上索引。

使用 in 不是一定会造成全表扫描的,in 肯定会走索引,但是当 in 的取值范围较大时会导致索引失效,走全表扫描(not in 同理)。

在 Order By 的情况下 走全表扫描反而是更好的选择。
展开
评论