文章詳情頁
mysql優(yōu)化 - mysql 模糊查詢和order by同用如何建立索引?
瀏覽:85日期:2022-06-11 13:49:18
問題描述
比如現(xiàn)在有這樣一個mysql語句:
select * from city where city_name like ’%hf%’ order by created_at;
這樣的sql語句如何建立索引呢,如果是建立復(fù)合索引,使用:
key(created_at,city_name)
這個由于created_at在前面,根據(jù)索引的最左匹配原則退化成了key(created_at).
key(city_name,created_at)
肯定也不行,前面是模糊查詢,這個復(fù)合索引退化成了key(city),那么這種情況只能建立單個的索引列來解決問題嗎?請教各位大大.
問題解答
回答1:前后都是%是不走索引的,都沒有索引退化的問題,要么改sql成前綴匹配要么加全文索引(對于短字串并不合適),再有就是對于這種基本不變的數(shù)據(jù)在應(yīng)用里面是可以放到搜索引擎里的,可以利用到它的分詞器檢索
相關(guān)文章:
1. 如何修改phpstudy的phpmyadmin放到其他地方2. java 排序的問題3. 我的html頁面一提交,網(wǎng)頁便顯示出了我的php代碼,求問是什么原因?4. 網(wǎng)絡(luò)傳輸協(xié)議 - 以下三種下載方式有什么不同?如何用python模擬下載器下載?5. angular.js - Angular路由和express路由的組合使用問題6. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?7. tp6表單令牌8. 老哥們求助啊9. php - mysql中,作為主鍵的字段,用int類型,是不是比用char類型的效率更高?10. django - 后臺返回的json數(shù)據(jù)經(jīng)過Base64加密,獲取時用python如何解密~!
排行榜

熱門標(biāo)簽