44问答网
所有问题
oracle中instr真比like快吗
如题所述
举报该问题
推荐答案 2017-04-29
一般来说是这样理解的,不过我没见过哪个文档上具体这么说。
个人分析可能是:instr是固定的位置,oracle不管前后直接找那个点,只要能对上那么就完成。
like是不一定是那个点。比如“123F45”,“12F345”都满足%F%,如果把F换成资格字符串也就是说like需要匹配的内容非常多,运算量远远大于instr。所以说instr比like快。
如果你的字符串位置固定,长度一致,那么instr确实比like快,不过还是要看你的需求,不过少用like是对的。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/66GGYKDYGYWKR3VVZ3.html
其他回答
第1个回答 2017-05-05
我猜想大概是因为,instr函数有可选参数,函数里面肯定要if...else判断可选参数传了没有,返回值还分几类,这些都要根据不同情况来if...else判断,返回值也不是boolean,而是整数,也就是说得到了结果还要去跟0对比。
而like运算符,只是机械的逐一扫描,然后直接返回boolean型
相似回答
oracle
like
和
instr的
差别
答:
instr不属于模糊查询。不知道你怎么会问这样的问题。
从效率角度来看:谁能用到索引,谁的查询速度就会快
。like有时可以用到索引,例如:name like '李%'而当下面的情况时索引会失效:name like '%李'与其他数据库不同的是,oracle支持函数索引。例如在name字段上建个instr索引。查询速度就比较快了。
Oracle中
使用多个
like
查询的问题
答:
--建议用这种写法,数据量大又需要模糊查询的时候,
用instr函数效率比like要高很多select
b.id from table bwhere (instr(b.context,'apple')>=1 or instr(b.context,'banana')>=1)and instr(b.context,'strawberry')=0;
Oracle
实现 一个关键字 匹配多个 字段
答:
这里 对比
like
与
instr
() 函数, 如果对性能 要求比较严格的 童鞋,记得来这里 用 instr () 来 替换 like 关键字 colum like ‘%搜索内容%‘等价于 instr(colum, ‘搜索内容‘, 1, 1)>0 columlike ‘搜索内容%‘等价于 instr(colum, ‘搜索内容‘, 1, 1)=1 colum like ‘%搜索内容‘...
如何提高
oracle
模糊查询的性能?
答:
select rowid from lui_user_base t where t.user_name like '%cs%' 这条sql执行很快,
那是相当的快
,但是放到select count(*) from lui_user_base where rowid in()里后,效率就会变的很慢了。4、select count(*) from lui_user_base t where instr(t.user_name,'cs')> 0 这种...
大家正在搜
oracle中instr
oracle not like
oracle like in
oracle模糊查询instr
instr函数 oracle
oracle instr函数用法
oracle sqlldr
oracle substr函数
oracle如何like多个值