日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql explain理解

發布時間:2025/1/21 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql explain理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#1.explain中各個名稱的解釋:

#1.1.id:查詢ID

id是一組數字,表示查詢中執行select子句或操作表的順序,如果id相同,則執行順序從上至下,如果是子查詢,id的序號會遞增,id越大則優先級越高,越先會被執行。

#1.2.select_type:聲明類型

常見的六個值:

1.SIMPLE:簡單的select查詢,查詢中不包含子查詢或者UNION。

2.PRIMARY:查詢中若包含任何復雜的子部分,最外層查詢則被標記為primary。

3.SUBQUERY:在SELECT或WHERE列表中包含了子查詢。

4.DERIVED:在FROM列表中包含的子查詢被標記為DERIVED(衍生),Mysql會遞歸執行這些子查詢,把結果放在臨時表里。

5.UNION:若第二個SELECT出現在UNION之后,則被標記為UNION;若UNION包含在FROM子句的子查詢中,外層SELECT將標記為:DERIVED。

6.UNION RESULT:從UNION表獲取結果的SELECT。

#1.3.table:引用表

顯示的查詢表名,如果查詢使用了別名,那么這里顯示的是別名。

如果不涉及對數據表的操作,那么這顯示為null。

如果顯示為尖括號括起來的<derived N>就表示這個是臨時表,后邊的N就是執行計劃中的id,表示結果來自于這個查詢產生。

如果是尖括號括起來的<union M,N>,與<derived N>類似,也是一個臨時表,表示這個結果來自于union查詢的id為M,N的結果集。


#1.4.type:連接類型

依次從好到差:

system > const > eq_ref > ref > range > index > ALL

重點:一般來說,得保證查詢至少達到range級別,最好能達到ref級別

system:表只有一行記錄(等于系統表),這是const類型的特例,平時不會出現,這個也可以忽略不計。

const:表示通過索引一次就找到了,const用于比較primary key 或者unique索引。因為只匹配一行數據,所以很快。如將主鍵置于where列表中,mysql就能將該查詢轉換為一個常量。

eq_ref:唯一索引掃描,對于每個索引鍵,表中只有一條記錄與之匹配。常見于主鍵或者唯一索引掃描。

ref:非唯一性索引掃描,返回匹配某個單獨值得所有行。本質上也是一種索引訪問,它返回所有匹配某個單獨值得行,然而,他可能會找到多個符合條件的行,所以他應該屬于查找和掃描的混合體。

range:只檢索給定范圍的行,使用一個索引來選擇行。key例顯示使用了哪個索引。一般就是在你的where語句中出現了between、<、>、in等的查詢。這種范圍掃描索引掃描比全表掃描要好,因為它只需要開始于索引的某一點,而結束于另一點,不用掃描全部索引。

index:Full Index Scan,index和ALL區別為index類型只遍歷索引樹。這通常比ALL快,因為索引文件通常比數據文件小。(也就是說雖然all和Index都是讀全表,但index是從索引中讀取的,而all是從硬盤中讀的)。

all:Full Table Scan,將遍歷全表以找到匹配的行。

#1.5.possible_keys:

#1.6.key:

#1.7.key_len:

#1.8.ref:

#1.9.rows:

#1.10.Extra:

微信掃一掃:關注我個人訂閱號“猿小飛”,更多精彩文章在這里及時發布:

?

總結

以上是生活随笔為你收集整理的mysql explain理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。