【最佳化】模糊查詢索引問題
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
- 反向索引與模糊查詢索引
- 拋棄mysql模糊查詢,使用sphinx做專業索引MySql索引
- MySQL索引原理及慢查詢最佳化MySql索引
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- elasticsearch的模糊查詢Elasticsearch
- MyBatis模糊查詢LIKEMyBatis
- sql日期模糊查詢SQL
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- 為何在查詢中索引未被使用(二)——問題解答索引
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- MySQL查詢最佳化方案彙總(索引相關)MySql索引
- mybatis做like模糊查詢MyBatis
- Mybatis各種模糊查詢MyBatis
- 關於Room資料庫,拼寫模糊查詢語句遇到的問題OOM資料庫
- 關於聯合索引,範圍查詢,時間列索引的幾個問題索引
- 使用點陣圖連線索引最佳化OLAP查詢索引
- int 被當作模糊查詢
- LINQ中的模糊查詢
- Mysql高效的模糊查詢(轉)MySql
- mysql千萬級資料量根據索引最佳化查詢速度MySql索引
- Xilinx問題查詢
- 斷號查詢問題
- [20230308]12c以上版本模糊查詢問題.txt
- 報表怎麼做模糊查詢
- 【PostgreSQL】 字首模糊查詢級優化SQL優化
- mybatis-模糊查詢like CONCATMyBatis
- Mybatis中Oracle的拼接模糊查詢MyBatisOracle
- Mybatis模糊查詢結果為空MyBatis
- mybatis 對特殊字元的模糊查詢MyBatis字元
- PostgreSQL DBA(192) - 整行模糊查詢SQL
- 模糊查詢區分大小寫嗎?
- Peewee Sqlite3 中文模糊查詢SQLite
- Oracle特殊符號的模糊查詢Oracle符號
- 儲存過程模糊查詢(like)儲存過程
- python 當中的模糊查詢Python