Explain性能分析概述

前言

整理的MySQL的相關技術點,其中的sql語句優化還是很重要的。所以想寫一系列的文章來整理一下。這篇就先寫概述,SQL語句性能分析的關鍵子的大概意思!

正文

先說說Explain是什麼吧!
使用 EXPLAIN 關鍵字可以模擬優化器執行 SQL 查詢語句,從而知道 MySQL 是如何處理你的 SQL 語句的。分 析你的查詢語句或是表結構的性能瓶頸。 可以幫助選擇更好的索引和寫出更優化的查詢語句。
用法:
Explain+SQL 語句。
例:

explain select * from table1,table2,table3 where table1.id=table2.id and table2.id=table.3.id;

Explain 執行後返回的信息:
在這裏插入圖片描述
接下來分別介紹每個字段是什麼意思:

一、id

select 查詢的序列號,包含一組數字,表示查詢中執行 select 子句或操作表的順序。

二、select_type

select_type 代表查詢的類型,主要是用於區別普通查詢、聯合查詢、子查詢等的複雜查詢。

三、table

這個數據是基於哪張表的。

四、type

type 是查詢的訪問類型。是較爲重要的一個指標,結果值從最好到最壞依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般來說,得保證查詢至少達到 range 級別,最好能達到 ref。

五、possible_keys

顯示可能應用在這張表中的索引,一個或多個。查詢涉及到的字段上若存在索引,則該索引將被列出,但不一 定被查詢實際使用。

六、key

實際使用的索引。如果爲NULL,則沒有使用索引

七、key_len

表示索引中使用的字節數,可通過該列計算查詢中使用的索引的長度。 key_len 字段能夠幫你檢查是否充分的 利用上了索引。ken_len 越長,說明索引使用的越充分。

八、ref

顯示索引的哪一列被使用了,如果可能的話,是一個常數。哪些列或常量被用於查找索引列上的值。

九、rows

rows 列顯示 MySQL 認爲它執行查詢時必須檢查的行數。越少越好!

十、Extra

其他的額外重要的信息。

結束

SQL性能優化是一個很重要的過程,所以能夠把Explain的相關技術搞清楚對以後的寫sql語句很有幫助,數據量小的時候根本沒什麼感覺,如果數據量大了的話sql語句優化後的時間是一個讓人驚訝的變化。

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