Mysql中條件查詢=不一定比like快

      最近做性能優化,發現這樣一個現象,100萬條數據量對同一個字段採用=和like ‘key%’不同的查詢方式查詢結果,結果like的查詢更快。

      測試造的數據中有一個列的值塞入的是同樣的值,該列加了索引,但通過explian發現雖然是索引列但實際運行時還是全文搜索並沒有用索引。後來將該列更新成區分度較高的值,通過explian發現這時是使用了索引。

      就其原因,以下有兩點觀點:

             1.數據區分度不高,導致索引失效,mysql認爲全文搜索比通過索引搜索還要快;

             2.查詢就是匹配字段,=key是完全匹配,like ‘key%’ 是部分匹配,匹配到key的一部分值就結束,(但‘%key%’一定是很慢的)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章