解決like '%字符串%'時索引不被使用的方法


如果like以通配符開頭('%abc')時索引會失效會變成全表掃描的操作。那么我們改如何解決這個問題。

 

 

現在我們建立一個tbl_user表,並加入如下圖的數據。

 

 

 

我們現在在建立索引之前查看sql的執行計划。執行的是全表掃描。

 

 

現在我們建立name和age的覆蓋索引。

現在我們再來看一下這個like的執行計划,查看是否使用了索引。我們現在的like使用到了索引。

 

 如果非得使用like使用索引的話,就要使用覆蓋索引來解決,你建的索引和查詢的字段上一樣。

 

 

LIKE 語句不允許使用 % 開頭,否則索引會失效;

當真的需要兩邊都使用%來模糊查詢時,只有當這個作為模糊查詢的條件字段(例子中的name)以及所想要查詢出來的數據字段(例子中的 id & name & age)都在索引列上時,才能真正使用索引,否則,索引失效全表掃描(比如多了一個 salary 字段)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM