在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 "%_" 百分號在前;索引
四、若是列類型是字符串,那必定要在條件中將數據使用引號引用起來,不然不使用索引;開發