索引失效浅谈

本人用的数据库:oracle 11g,优化器:CBO(基于代价的优化器)。

索引的目标是避免全表扫描,提高查询效率,但有的语句看执行计划会发现并没有走索引,下面分析下几种导致索引失效的原因(不全).

这里建了一张表:SMTS_USER_INFO_DTL

表字段如下:

索引:

原因1:使用了 is null 或 is not null

如下:

原因2:<>

如下:

原因3:索引列上使用函数或索引列上进行运算

如下:

原因4:like '%_' 百分号在前

原因5:单独使用复合索引里非第一位的索引列

原因6:隐式转换

这是因为oracle会自动换为:to_number(t.mobile) =1

原因7:not in

原文地址:https://www.cnblogs.com/gexiaoshan/p/6019836.html