1、范围列可以用到索引,但是范围列后面的列无法用到索引,索引最多用于一个范围列,因此如果查询条件中有两个范围列则无法全用到索引。
https://kb.cnblogs.com/page/151329/,
https://www.cnblogs.com/zhaobingqing/p/7071331.html
2、mysql使用不等于(!=或<>)无法使用索引导致全表扫描
3、is null,is not null无法使用索引
4、like以通配符开头("%abc") mysql索引失效会全表扫描
5、字符换不加单引号索引失效
6、少用or 用它来连接时会索引失效
7、最佳左前缀法则 组合索引a b c 指的是查询从索引的最左列开始并且不跳过索引中的列
7.1、使用a=1 and b=1 and c=1、a=1 and b=1、a=1使用了索引;
7.2、使用b=1 and c=1、b=1、c=1不使用索引
7.3、a=1 and c=1 a列使用了索引,c在第一列查询的结果里进行扫描过滤
8、查询条件中含有函数或表达式不使用索引
mvn clean install -U -Dmaven.test.skip=true