1.學習網址
https://www.cnblogs.com/ding2011/articles/3388173.html
2.
SQL當中儘量不採用IN操作符,IN的SQL性能總是比較低的
NOT IN操作符
此操作是強列推薦不使用的,因爲它不能應用表的索引
用NOT EXISTS 或(外連接+判斷爲空)方案代替 操作符(不等於) 不等於有兩種寫法: <> !=
不等於操作符是永遠不會用到索引的,因此對它的處理只會產生全表掃描。
IS NULL 或IS NOT NULL操作(判斷字段是否爲空)
判斷字段是否爲空一般是不會應用索引的,因爲B樹索引是不索引空值的。
用其它相同功能的操作運算代替,如
a is not null 改爲 a>0 或a>’’等。
> 及 < 操作符(大於或小於操作符)
大於或小於操作符一般情況下是不用調整的,因爲它有索引就會採用索引查找
採用函數處理的字段不能利用索引,如:
substr(hbs_bh,1,4)=’5400’,優化處理:hbs_bh like ‘5400%’
trunc(sk_rq)=trunc(sysdate),優化處理:
sk_rq>=trunc(sysdate) and sk_rq<trunc(sysdate+1)
進行了顯式或隱式的運算的字段不能進行索引,如:
ss_df+20>50,優化處理:ss_df>30
3.總結一句話就是合理使用索引