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


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

一般來說,在Oracle數據庫中,我們對tb表的name字段進行模糊查詢會采用下面兩種方式:
1.select * from tb where name like '%XX%';
2.select * from tb where instr(name,'XX')>0;

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

為提高效率,我們在name字段上可以加上非唯一性索引:
create index idx_tb_name on tb(name);

這樣,再使用

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM