1、OR 条件: 当查询中使用多个 OR 条件时,如果这些条件不涉及同一列,索引可能无法有效使用。数据库可能会选择全表扫描而不是使用多个索引。
2、对列进行类型转换: 如果在查询中对列进行类型转换,例如将字符列转换为数字或日期,索引可能会失效。
3、使用通配符前缀搜索: 在使用通配符前缀(如LIKE 'prefix%')进行搜索时,大多数索引无法使用,因为索引通常是按照列的完整值进行排序的。
不等号条件: 当查询中包含不等号条件(如>,<,>=,<=)时,索引可能会失效。通常情况下,索引只能用于等值比较。
4、表连接中的列类型不匹配: 如果在连接操作中涉及的两个表的列类型不匹配,索引可能会失效。例如,一个表的列是整数,另一个表的列是字符,连接时可能会导致索引失效。