mysql最佳化 - mysql 模糊查詢和order by同用如何建立索引?
高洛峰
高洛峰 2017-06-14 10:50:40
0
1
938

例如現在有這樣一個mysql語句:

select * from city where city_name like '%hf%' order by created_at;

這樣的sql語句如何建立索引呢,如果是建立複合索引,使用:

key(created_at,city_name)

這個由於created_at在前面,根據索引的最左匹配原則退化成了key(created_at).

key(city_name,created_at)

肯定也不行,前面是模糊查詢,這個複合索引退化成了key(city),那麼這種情況只能建立單一的索引列來解決問題嗎?
請教各位大大.

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(1)
仅有的幸福

前後都是%是不走索引的,都沒有索引退化的問題,要么改sql成前綴匹配要么加全文索引(對於短字符串並不合適),再有就是對於這種基本不變的數據在應用程式裡面是可以放到搜尋引擎裡的,可以利用它的分詞器檢索

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!