1、使用不等于操作符(<>, !=)
大于可以、小于可以,between and 也可以
2、使用 is null 或 is not null
任何包含null值的列都将不会被包含在索引中。
解决这个问题的办法就是:建表时把需要索引的列
定义为非空(not null)
3、索引列使用函数或计算
WHERE trunc(create_date) > '1999-12-12'; 错误
WHERE create_date > to_date( '1999-12-12','yyyy-mm-dd'); 正确
WHERE score*2.3>120 错误
WHERE score>120/2.3 正确
4、索引列与比较值数据类型不一致
book_type:CHAR型
WHERE book_type=15 错误
WHERE book_type='15' 正确
5、复合索引,必须使用主索引列
复合索引(id,name)
WHERE id=5 AND name=’JACK’ 正确
WHERE name=’JACK’ AND id=5 正确
WHERE id=5 正确
WHERE name=’JACK’ 错误
6、like子句
WHERE name LIKE ‘小%’ 正确
WHERE name LIKE ‘%小%’ 错误
WHERE name LIKE ‘%小’ 错误