mysql 查看sql是否使用索引

我們使用explain關鍵詞就可以查看sql語句是否使用索引,也提高我們sql優化

explain執行結果關注以下幾個字段:

type:

         顯示sql執行的類型,從最好到最差的類型爲system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL。一般來說,type至少要達到range級別,最好達到ref級別,低於range級別的sql必須進行優化。

 

key:

         顯示sql執行過程中實際使用的鍵或索引,如果爲null則表示未使用任何索引,必須進行優化。

 

Extra:

如果是Only index,這意味着信息只用索引樹中的信息檢索出的,這比掃描整個表要快。

如果是where used,就是使用上了where限制。

如果是impossible where 表示用不着where,一般就是沒查出來啥。

如果此信息顯示Using filesort或者Using temporary的話會很吃力,WHERE和ORDER BY的索引經常無法兼顧,如果按照WHERE來確定索引,那麼在ORDER BY時,就必然會引起Using filesort,這就要看是先過濾再排序划算,還是先排序再過濾划算。

demo:

EXPLAIN
SELECT * FROM test WHERE counts > 1;

轉發:https://www.cnblogs.com/hustzzl/p/6075495.html

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