Oracle like '%...%' 优化
1.尽量不要使用?like?'%%'
2.对于?like?'%'?(不以?%?开头),Oracle可以应用?colunm上的index
3.对于?like?'%…'?的?(不以?%?结尾),可以利用reverse?+?function?index?的形式,变化成?like?'%'
4.非用like'%%'不可时,使用Oracle内部函数:INSTR()解决。
?
select???id,?name?from?users?where?instr(id,?'101')?>?0;??
?????????等价于
select???id,?name?from?users?where?id?like?'%101%'
?
5.尽量不要使用in?而使用关联方式:left jion on
?
6.使用 between and?代替使用?>= <= 尤其是在日期中比较 效果会高很多?
?