【最佳化】模糊查詢索引問題
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索引
- [20230308]12c以上版本模糊查詢問題.txt
- 拋棄mysql模糊查詢,使用sphinx做專業索引MySql索引
- mysql 模糊查詢MySql
- MySQL索引原理及慢查詢最佳化MySql索引
- MySQL-10.索引最佳化與查詢最佳化MySql索引
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- elasticsearch的模糊查詢Elasticsearch
- MyBatis模糊查詢LIKEMyBatis
- mybatis - [07] 模糊查詢MyBatis
- 《MySQL 進階篇》十五:索引最佳化和查詢最佳化MySql索引
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- MySQL查詢最佳化方案彙總(索引相關)MySql索引
- 關於聯合索引,範圍查詢,時間列索引的幾個問題索引
- 關於Room資料庫,拼寫模糊查詢語句遇到的問題OOM資料庫
- ClickHouse內幕(3)基於索引的查詢最佳化索引
- mybatis-模糊查詢like CONCATMyBatis
- python 當中的模糊查詢Python
- [20190524]淺談模糊查詢.txt
- [Uniapp] uni-combox模糊查詢APP
- int 被當作模糊查詢
- PostgreSQL DBA(192) - 整行模糊查詢SQL
- 索引選擇度問題最佳化整理索引
- mysql千萬級資料量根據索引最佳化查詢速度MySql索引
- MySql 查詢某一天日期格式欄位走索引問題MySql索引
- SQL-基礎語法 - 條件查詢 - 模糊查詢SQL
- Elasticsearch(三):索引查詢Elasticsearch索引
- elasticsearch之多索引查詢Elasticsearch索引
- leetcode題解(查詢表問題)LeetCode
- Mybatis中Oracle的拼接模糊查詢MyBatisOracle
- 報表怎麼做模糊查詢
- Mybatis模糊查詢結果為空MyBatis
- mybatis 對特殊字元的模糊查詢MyBatis字元
- Peewee Sqlite3 中文模糊查詢SQLite
- 【PostgreSQL】 字首模糊查詢級優化SQL優化