提高sql查詢效能 使用instr函式替換like

2021-07-04 04:10:25 字數 1026 閱讀 8215

在查詢時經常使用like作為關鍵字進行模糊查詢,在生產環境中由於資料量較大,使用like查詢時比較慢,嘗試了一些方法,最終發現使用oracle的instr函式可以顯著提高查詢的效率.

關於資料量:

selectcount(1) fromt_partner_role; 

--612565

selectcount(1) fromt_vendor_repository; 

--1178044

sql語句查詢時間比較:

select count(id)

from (select t.id

from t_vendor_repository t

where t.deleted = 0

and t.partnerid in (select distinct (tpr.partnerid)

from t_partner_role tpr

where tpr.partnerroletype in (1)

and tpr.deleted = 0)

and t.vendorname like '%拓維資訊系統股份****%');

--使用like查詢耗時 

1.570ms

select count(id)

from (select t.id

from t_vendor_repository t

where t.deleted = 0

and t.partnerid in (select distinct (tpr.partnerid)

from t_partner_role tpr

where tpr.partnerroletype in (1)

and tpr.deleted = 0)

and instr(t.vendorname,'拓維資訊系統股份****

',1,1)!=0);

--使用instr查詢耗時 0.654ms

通過真實資料的比較發現使用instr的查詢效率要高於like,以後再優化like查詢時可以考慮.

提高SQL查詢效能

適當遵循一些原則可以讓工作變得更加輕鬆,它們可以幫助提高sql查詢速度 1 用case代替update 要更新一條記錄,我們立即會想到update,這個問題非常常見,許多開發人員經常忽視這個原則,因為使用update看起來非常自然,非常合乎邏輯。假設你從customer表中提取記錄,你想將超過10萬...

讓mongoDB也能使用in查詢,提高查詢速度

mongodb使用in查詢 在mongodb查詢,是在springboot中使用的mongodb,結合業務需求,需要查詢多個id的記錄,改寫了mongodb的查詢方法,讓其實現了像mysql中in查詢一樣的操作。首先是引用了mongotemplate 封裝類,這是org.springframewor...

效能使用指令

vmstat 1 總的cpu利用率 mpstat p all 1 每個cpu核的利用率 top pidstat 每個程序的cpu利用率 資訊 proc stat proc pid stat 檢視網路流量 sar n dev 1 100 網絡卡流量 sar n edev 1 100 網絡卡丟包 資料 ...