SQL性能调优之索引失效

在sql性能调优时索引是提升sql性能的利器,但是在某些情况下索引会失效。

笔者整理了四种情况会引起索引失效:

1、查询条件使用函数在索引列上,或者对索引列进行运算,运算包括(+,-,,/,! 等) 错误的例子:select from test where id-1=9; 正确的例子:select * from test where id=10;

2、隐式转换导致索引失效.(这一点应当引起重视.也是开发中经常会犯的错误). 由于表的字段定义为varchar(20),但在查询时把该字段作为number类型以where条件传,这样会导致索引失效. 错误的例子:select from test where tu_mdn=13333333333; 正确的例子:select from test where tu_mdn='13333333333';

3、like "%_" 百分号在前;

4、如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引;

猜你喜欢

转载自blog.51cto.com/14103476/2518482