数据库索引失效场景
MySQL在哪些情况下不使用索引 ?
1. like查询使用%开头不能使用索引,但用%结尾的可以使用索引。
2. where语句中使用<>或!=。 where语句中使用or,且没有把or中的所有字段加上索引。
3. where语句中对字段表达式操作。
4. where语句中使用NOT IN。
5. 使用简单的IN会使用索引
6. 联合索引失效
联合索引遵循最左匹配原则
例: 索引列A和列B 建立联合索引 index(A,B)(A,B顺序有序) explain select X from XX where A=’‘and B=’’ 走 ab索引 explain select X from XX where A=’‘走 ab索引 explain select X from XX where B=’'不走 ab索引,索引type为ALL 走全表扫描。