Oracle模糊查询 like与instr

分2种思路考虑模糊查询的效率的提高。--注:专注处理百万级数据量,小量数据就算了

第一种:把数据存到业务内存中,通过查询内存提高效率。(要求:硬件内存要高)

1,如果想实现内存动态数据,可以监控表数据变化更新内存。

 

第二种:提高oracle数据库的查询方式。

1、使用两边加‘%’号的查询,oracle是不通过索引的,所以查询效率很低。

    例如:select count(*) from lui_user_base t where t.user_name like '%cs%';

2、like '...%'和 like'%...'虽然走了索引,但是效率依然很低。

3、有人说使用如下sql,他的效率提高了10倍,但是数据量小的时候

    select count(*) from lui_user_base where rowid in (
       select rowid from lui_user_base t where t.user_name like '%cs%'
    )

我拿100w跳数据做了测试,效果一般,依然很慢,原因:

  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

这种查询效果很好,速度很快,推荐使用这种。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值