以下的文章主要介绍的是Oracle数据库中用instr来代替like,假设表里有1100万数据,在很多的情况下,我们对其进行相关的字符串匹配,在SQL语句的实际应用中,我们一般的使用like来达到我们搜索的目标。
但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果:
- SQL> set timing on
- SQL> select count(*) from t where instr(title,’手册’)>0;
- COUNT(*)
- ———-
- 65881
- Elapsed: 00:00:11.04
- SQL> select count(*) from t where title like ‘%手册%’;
- COUNT(*)
- ———-
- 65881
- Elapsed: 00:00:31.47
- SQL> select count(*) from t where instr(title,’手册’)=0;
- COUNT(*)
- ———-
- 11554580
- Elapsed: 00:00:11.31
- SQL> select count(*) from t where title not like ‘%手册%’;
- COUNT(*)
- ———-
- 11554580
注:
instr(title,’手册’)>0 相当于like
instr(title,’手册’)=0 相当于not like
上述的相关内容就是对Oracle数据库用instr代替like的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】