code
|

資料庫 – SQL效能優化LIKE模糊查詢

我們在寫sql的時候應該儘量避免在一個複雜查詢裡面使用 LIKE ‘%XXX%’

由於XXX前面用到了“%”,因此該查詢必然走全表掃描,導致相關列的索引無法使用,除非必要,否則不要在關鍵詞前加%

如果後臺邏輯必須使用’%XXX%’,可以考慮以下解決辦法

修改前臺程式

把查詢條件的名稱欄由原來的文字輸入改為下拉列表,使用者模糊輸入名稱時,直接在前臺就幫忙定位到具體的名稱,

這樣在呼叫後臺程式時,這列就可以直接用等於來關聯了

直接修改後臺

根據輸入條件,先查出符合條件的名稱,並把相關記錄儲存在一個臨時表裡頭,然後再用臨時表去做複雜關聯

select * from 商品表 where name like 'Java%' 這是個模糊查詢,會用到索引,請大家記住,用like進行模糊查詢時,如果第一個就是模糊的匹配符

比如 where name like ‘%java’,那麼在查詢時不會走索引

在其他情況,不論用了多少個%,也不論%的位置,只要不出現在第一個位置,那麼都能用到索引

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *