【最佳化】模糊查詢索引問題
1、問題描述:
生產環境中使用模糊查詢SQL語句如like '%A%' 導致全表掃描拖慢系統。
2、情景復現:
使用scott的emp2(emp表複製)表作為測試表,查詢在ename欄位包含O字母的所有員工。
前提:已經在emp2表的ename欄位建立了索引 create index ind_emp2_ename on emp2(ename);
SCOTT> explain plan for select * from emp2 where ename like 'S%';
SCOTT> @?/rdbms/admin/utlxplp
SCOTT> explain plan for select * from emp2 where ename like '%O%';
SCOTT> @?/rdbms/admin/utlxplp
結論:模糊查詢如果第一個是萬用字元,就不走索引
建議:模糊查詢,想要索引生效,要給出前面的字串
生產環境中使用模糊查詢SQL語句如like '%A%' 導致全表掃描拖慢系統。
2、情景復現:
使用scott的emp2(emp表複製)表作為測試表,查詢在ename欄位包含O字母的所有員工。
前提:已經在emp2表的ename欄位建立了索引 create index ind_emp2_ename on emp2(ename);
SCOTT> explain plan for select * from emp2 where ename like 'S%';
SCOTT> @?/rdbms/admin/utlxplp
SCOTT> explain plan for select * from emp2 where ename like '%O%';
SCOTT> @?/rdbms/admin/utlxplp
結論:模糊查詢如果第一個是萬用字元,就不走索引
建議:模糊查詢,想要索引生效,要給出前面的字串
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31476473/viewspace-2152393/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql 模糊查詢問題SQL
- 反向索引與模糊查詢索引
- IndexPatternService 模糊查詢索引 fuzzyQuery分析Index索引
- mysql 模糊查詢MySql
- 拋棄mysql模糊查詢,使用sphinx做專業索引MySql索引
- MySQL-10.索引最佳化與查詢最佳化MySql索引
- MySQL索引原理及慢查詢最佳化MySql索引
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- elasticsearch的模糊查詢Elasticsearch
- MyBatis模糊查詢LIKEMyBatis
- sql日期模糊查詢SQL
- mybatis - [07] 模糊查詢MyBatis
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- 為何在查詢中索引未被使用(二)——問題解答索引
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- 《MySQL 進階篇》十五:索引最佳化和查詢最佳化MySql索引
- mybatis做like模糊查詢MyBatis
- Mybatis各種模糊查詢MyBatis
- MySQL查詢最佳化方案彙總(索引相關)MySql索引
- 關於Room資料庫,拼寫模糊查詢語句遇到的問題OOM資料庫
- 關於聯合索引,範圍查詢,時間列索引的幾個問題索引
- 使用點陣圖連線索引最佳化OLAP查詢索引
- ClickHouse內幕(3)基於索引的查詢最佳化索引
- int 被當作模糊查詢
- LINQ中的模糊查詢
- Mysql高效的模糊查詢(轉)MySql
- Xilinx問題查詢
- 斷號查詢問題
- mysql千萬級資料量根據索引最佳化查詢速度MySql索引
- 報表怎麼做模糊查詢
- 【PostgreSQL】 字首模糊查詢級優化SQL優化
- mybatis-模糊查詢like CONCATMyBatis
- Mybatis中Oracle的拼接模糊查詢MyBatisOracle
- Mybatis模糊查詢結果為空MyBatis
- mybatis 對特殊字元的模糊查詢MyBatis字元
- PostgreSQL DBA(192) - 整行模糊查詢SQL