[丹臣]ORACLE中Like與Instr效能大比拼
t表中將近有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
另外,我在另外一個2億多的表,使用8個並行,使用like查詢很久都不出來結果,但使用instr,4分鐘即完成查詢,效能是相當的好。這些小技巧用好,工作效率提高不少。通過上面的測試說明,ORACLE內建的一些函式,是經過相當程度的優化的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-611230/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [ 丹臣]INNODB與ORACLE單行儲存長度對比Oracle
- 【丹臣】優化SQL的另類思考優化SQL
- oracle中substr() instr() 用法Oracle
- [ 丹臣]利用innodb_table_monitor來trace innodb內部資訊
- 轉--oracle中替代LIKE方法Oracle
- Oracle中的like優化Oracle優化
- Oracle instr函式Oracle函式
- Ubuntu 8.04與XP SP3效能大比拼Ubuntu
- 【轉】oracle instr函式Oracle函式
- 解決oracle中not like效率問題Oracle
- Java Bean Copy 效能大比拼JavaBean
- oracle regexp_like用法與正則Oracle
- Oracle索引失效-likeOracle索引
- Oracle中like效率正規表示式淺析Oracle
- Oracle中實現查詢結果按照in中條件排序 InStr函式Oracle排序函式
- 在資料庫的查詢與更新中,CHARINDEX與instr的區別?資料庫Index
- 【Mysql】instr與find_in_set與regexpMySql
- SQL中LIKE的妙用SQL
- oracle sql like優化(一)OracleSQL優化
- Oracle中 HWM與資料庫效能的探討Oracle資料庫
- EXCEl中LIKE的實現Excel
- Oracle SQL Like 的最佳化OracleSQL
- oracle 中使用like的問題Oracle
- instr() 函式函式
- Oracle 解決like中無法匹配下劃線的問題Oracle
- oracle的instr函式在hive上面的實現Oracle函式Hive
- oracle dead lock與效能Oracle
- like 操作中對於'_'處理
- 後設資料效能大比拼:HDFS vs OSS vs JuiceFSUI
- Web框架第7輪效能大比拼結果揭曉Web框架
- 服務端I/O效能大比拼:Node、PHP、Java、Go服務端PHPJavaGo
- 移動端效能大比拼:CSS Sprites vs. Data URICSS
- MySQL的create table as 與 like區別MySql
- Oracle like、不等於、隱式轉換走索引與不走索引情況Oracle索引
- 服務端 I/O 效能大比拼:Node、PHP、Java 和 Go服務端PHPJavaGo
- MyBatis中Like語句使用總結MyBatis
- zt_eygle_Oracle中 HWM與資料庫效能的探討Oracle資料庫
- Instr函式的用法函式