Oracle索引失效-like
在sql語句中like時需要特別注意,有可能會使索引失效
[@more@]測試:
建表,然後在測試欄位上加索引
SELECT * FROM BASE_ROLE e
WHERE e.role_name LIKE '%角%'
欄位上role_name上有索引,但卻走的是全表掃描
SELECT * FROM BASE_ROLE e
WHERE e.role_name LIKE '角%'
這種情況下使用索引
SELECT * FROM BASE_ROLE e
WHERE e.role_name LIKE '%角'
這種情況也不走索引
總結:
1.儘量不要使用like '%..%',無法最佳化
2.對於 like '..%..' (不以 % 開頭),Oracle可以應用 colunm上的index
3.對於 like '%...' 的 (不以 % 結尾),可以利用reverse + function index 的形式,變化成 like '..%',這種情況我測試了發現也沒有走索引,不知道是不是oracle哪裡設定的問題
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25261409/viewspace-1056560/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 使用 like "%x",索引一定會失效嗎?MySql索引
- oracle 索引使用及索引失效總結Oracle索引
- Oracle drop,truncate partition 索引失效 實驗Oracle索引
- Oracle資料庫索引使用及索引失效總結 轉Oracle資料庫索引
- Oracle 反向索引 where index_column like '%xxx'Oracle索引Index
- Oracle like、不等於、隱式轉換走索引與不走索引情況Oracle索引
- 關於 Oracle 分割槽索引的失效和重建Oracle索引
- 索引失效場景索引
- Oracle隱式型別轉換導致索引失效Oracle型別索引
- [資料庫]索引失效資料庫索引
- MySql ORDER BY索引是否失效MySql索引
- mysql索引失效的情況MySql索引
- 索引失效系列——說說is null索引Null
- 探索MySQL的InnoDB索引失效MySql索引
- 面試官:聊聊索引失效?失效的原因是什麼?面試索引
- MySQL學習筆記:索引失效MySql筆記索引
- oracle交換分割槽所引起的索引失效問題探究測試Oracle索引
- 驗證Oracle 10g線上整理碎片索引是否失效過程Oracle 10g索引
- Oracle分割槽表全域性索引新增分割槽時不會失效Oracle索引
- ORACLE MYSQL中join 欄位型別不同索引失效的情況OracleMySql型別索引
- 建立索引後,速度變快原因?以及索引失效總結索引
- 分割槽表 全域性索引與本地索引失效測試索引
- MySQL索引失效之隱式轉換MySql索引
- MySQL索引失效行鎖變表鎖MySql索引
- 【INDEX】索引失效或者不可用 UNUSABLEIndex索引
- 引起索引失效的原因和解決方法索引
- MySQL系列:索引失效場景總結MySql索引
- 轉--oracle中替代LIKE方法Oracle
- Oracle中的like優化Oracle優化
- oracle sql like優化(一)OracleSQL優化
- 聊一聊MySQL索引失效的問題MySql索引
- Mysql 會導致索引失效的情況MySql索引
- 索引失效系列——隱式型別轉換索引型別
- Oracle SQL Like 的最佳化OracleSQL
- oracle 中使用like的問題Oracle
- MYSQL索引失效的各種情況小結MySql索引
- mysql innodb 索引失效問題引起表級鎖MySql索引
- oracle編譯物件失效Oracle編譯物件