在sql性能调优时索引是提高sql性能的利器,可是在某些状况下索引会失效。sql
笔者整理了四种状况会引发索引失效:ide
一、查询条件使用函数在索引列上,或者对索引列进行运算,运算包括(+,-,,/,! 等) 错误的例子:select from test where id-1=9; 正确的例子:select * from test where id=10;函数
二、隐式转换致使索引失效.(这一点应当引发重视.也是开发中常常会犯的错误). 因为表的字段定义为varchar(20),但在查询时把该字段做为number类型以where条件传,这样会致使索引失效. 错误的例子:select from test where tu_mdn=13333333333; 正确的例子:select from test where tu_mdn='13333333333';性能
三、like "%_" 百分号在前;索引
四、若是列类型是字符串,那必定要在条件中将数据使用引号引用起来,不然不使用索引;开发