1. 程式人生 > >不建議使用 force index()索引,使用聯合索引就可以解決問題!!!

不建議使用 force index()索引,使用聯合索引就可以解決問題!!!

  最近解決mysql慢查詢問題,先把sql大概說明下 

    select id from table where type = 1 and XX= xx and XX1= xx1 and XX2 = xx2  order by time desc

  再說一下背景,之前的開發人員建了兩個索引 index_type和index_time, 結果mysql 一直是按照index_time索引來查詢的,查詢比較慢,後來有人想到用force index(index_type)解決,這樣指定按照某個索引來查詢,查詢效率很高。但是指定索引就帶來維護成本,比如哪天資料庫改動需要刪除索引index_type,如果忘記修改程式,程式必然會報錯。

    最後是通過聯合索引解決的,刪除index_type,新建一個聯合索引index_type_time,這樣就很好的解決了問題。

    遇到的問題,記錄下來,如果不小心幫到你了,倍感榮幸,歡迎批評指正討論。