目录
查看当前执行是否走的时候索引:
key idx_address(address) 普通索引,索引名为idx_address
key idx_sn_name_age(sn,name,age) 联合索引,一个索引,三个字段。
联合索引注意:字段创建的先后顺序会影响索引的执行。
索引失效场景:
(bs)
1. 索引失效场景1
联合索引不满足最左匹配原则(前缀匹配):在联合索引查询中,查询语句必须要以联合索引最左边的字段开始查询,这时联合索引才有效,否则联合索引不会生效。
举例:sn + name + sge A表示sn,B表示name,C表示name
1.1 联合查询顺序:A + B + C (满足最左匹配原则,可以使用联合索引)
1.2 联合查询顺序:A + B (满足最左匹配原则,可以使用联合索引)
1.3 联合查询顺序:A + C (满足最左匹配原则,触发联合索引)
1.4 联合查询顺序:A (满足最左匹配原则,触发联合索引)
1.5 联合查询顺序:B+ A (满足最左匹配原则,可以使用联合索引)
1.6 联合查询顺序:B (不满足最左匹配原则,不可以使用联合索引)
1.7 联合查询顺序:C (不满足最左匹配原则,不可以使用联合索引)
1.8 联合查询顺序:B + C (不满足最左匹配原则,不可以使用联合索引)
联合索引的值是最左边的值,因此只要有A就可以满足最左匹配原则,使用联合索引。
2. 索引失效场景2
使用错误模糊查询
like 模糊查询的常用方式:
1. 前面确定 ----》 字段名 like '张%'
2. 中间确定 ----》 字段名 like '%张%'
3. 后面确定 ----》 字段名 like '%张'
1 可以触发索引,2、3不可以触发索引
3. 索引失效场景3
索引查询列使用运算操作(+/-/*//)
4. 索引失效场景4
查询的列使用了函数
5. 索引失效场景5
查询的列使用了隐式的类型转换
6. 索引失效场景6
使用is not null