真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle中Like與Instr模糊查詢性能的示例分析

這篇文章主要介紹了Oracle中Like與Instr模糊查詢性能的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注骨干網(wǎng)絡(luò)服務(wù)器租用十余年,服務(wù)更有保障!服務(wù)器租用,成都服務(wù)器托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。

instr(title,'手冊(cè)')>0 相當(dāng)于 title like '%手冊(cè)%' 
instr(title,'手冊(cè)')=1 相當(dāng)于 title like '手冊(cè)%' 
instr(title,'手冊(cè)')=0 相當(dāng)于 title not like '%手冊(cè)%'

t表中將近有1100萬數(shù)據(jù),很多時(shí)候,我們要進(jìn)行字符串匹配,在SQL語句中,我們通常使用like來達(dá)到我們搜索的目標(biāo)。但經(jīng)過實(shí)際測(cè)試發(fā)現(xiàn),like的效率與instr函數(shù)差別相當(dāng)大。下面是一些測(cè)試結(jié)果:   

SQL> set timing on 
SQL> select count(*) from t where instr(title,'手冊(cè)')>0; 
 COUNT(*) 
---------- 
   65881 
Elapsed: 00:00:11.04 
SQL> select count(*) from t where title like '%手冊(cè)%'; 
 COUNT(*) 
---------- 
   65881 
Elapsed: 00:00:31.47 
SQL> select count(*) from t where instr(title,'手冊(cè)')=0; 
 COUNT(*) 
---------- 
 11554580 
Elapsed: 00:00:11.31 
SQL> select count(*) from t where title not like '%手冊(cè)%'; 
 COUNT(*) 
---------- 
 11554580

另外,我在結(jié)另外一個(gè)2億多的表,使用8個(gè)并行,使用like查詢很久都不出來結(jié)果,但使用instr,4分鐘即完成查找,性能是相當(dāng)?shù)暮谩_@些小技巧用好,工作效率提高不少。通過上面的測(cè)試說明,ORACLE內(nèi)建的一些函數(shù),是經(jīng)過相當(dāng)程度的優(yōu)化的。  

instr(title,'aaa')>0 相當(dāng)于like 
instr(title,'aaa')=0 相當(dāng)于not like

  特殊用法:

 select  id, name from users where instr('101914, 104703', id) > 0;

  它等價(jià)于  

select  id, name from users where id = 101914 or id = 104703;

使用Oracle的instr函數(shù)與索引配合提高模糊查詢的效率   

一般來說,在Oracle數(shù)據(jù)庫中,我們對(duì)tb表的name字段進(jìn)行模糊查詢會(huì)采用下面兩種方式: 

select * from tb where name like '%XX%'; 
select * from tb where instr(name,'XX')>0;

 若是在name字段上沒有加索引,兩者效率差不多,基本沒有區(qū)別。  

為提高效率,我們?cè)趎ame字段上可以加上非唯一性索引:

create index idx_tb_name on tb(name);

這樣,再使用   

select * from tb where instr(name,'XX')>0;

這樣的語句查詢,效率可以提高不少,表數(shù)據(jù)量越大時(shí)兩者差別越大。但也要顧及到name字段加上索引后DML語句會(huì)使索引數(shù)據(jù)重新排序的影響。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Oracle中Like與Instr模糊查詢性能的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!


網(wǎng)站標(biāo)題:Oracle中Like與Instr模糊查詢性能的示例分析
網(wǎng)站路徑:http://weahome.cn/article/iepied.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部