oracle中instr真比like快吗

如题所述

一般来说是这样理解的,不过我没见过哪个文档上具体这么说。
个人分析可能是:instr是固定的位置,oracle不管前后直接找那个点,只要能对上那么就完成。
like是不一定是那个点。比如“123F45”,“12F345”都满足%F%,如果把F换成资格字符串也就是说like需要匹配的内容非常多,运算量远远大于instr。所以说instr比like快。
如果你的字符串位置固定,长度一致,那么instr确实比like快,不过还是要看你的需求,不过少用like是对的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-05
我猜想大概是因为,instr函数有可选参数,函数里面肯定要if...else判断可选参数传了没有,返回值还分几类,这些都要根据不同情况来if...else判断,返回值也不是boolean,而是整数,也就是说得到了结果还要去跟0对比。
而like运算符,只是机械的逐一扫描,然后直接返回boolean型