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.总结一句话就是合理使用索引