Oracle索引失效的原因
1使用否定關鍵字
!=, <> ,not in,not exist
select * fromdrama where id <> 1,MySQL不會
2單獨使用不等式關鍵字
直接用>或<可能會失效,Mysql不會
3使用null關鍵字
is null或is not null 可能會失效
4左模糊或全模糊
like %放在前面
5索引列用函數
6條件中字符型字段賦值數字
7使用復合索引, 不使用第一個索引列
8索引失效
9剛建立新表,沒有生成統計信息,需要分析一下
10索引不如全表查詢快,表比較小或查詢10%以上的列
二、查看索引是否有效的SQL
1、explain plan forselect * from A where B='xx'2、select * from table(dbms_xplan.display)
三、解決辦法
1在特定場景下使用索引
不在小表使用索引,不在列值重復多的列建索引。如不在“性別”,“流轉狀態”列建索引。
2sql慎用關鍵字
null,not , > <
3重建索引
4強制使用索引
新聞熱點
疑難解答