一、Oracle索引失效的原因 1使用否定關鍵字 !=, <> ,not in,not exist select * fromdrama where id <> 1,Mysql不會 2單獨使用不等式關鍵字 直接用>或<可能會失效,Mysql不會 3使用null關鍵字 is null或is not n ...
一、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 for
select * from A where B='xx'
2、select * from table(dbms_xplan.display)
三、解決辦法
1在特定場景下使用索引
不在小表使用索引,不在列值重覆多的列建索引。如不在“性別”,“流轉狀態”列建索引。
2sql慎用關鍵字
null,not , > <
3重建索引
4強制使用索引