上官網看執行計劃檔案釋義,移步
此部分在MySQL官方檔案中的結構屬于優化(Optimization)-理解查詢執行計劃(Understanding the Query Execution Plan),

此部分一共包括5個部分內容:
1,使用explain優化查詢
2,explain輸出內容釋義
3,擴展explain輸出格式
4,獲取命名連接的執行計劃資訊
5,預估查詢性能
一. 使用explain優化查詢
explain適用于select,delete,update,insert,replace陳述句

對于select陳述句,可以通過show warnings顯示額外資訊

輔助磁區表的查詢,這部分請參閱官網Obtaining Information About Partitions,

二. explain輸出內容釋義

官網給了完整的釋義,翻譯就是:
id:查詢識別符號,id相同-按順序執行;id不同-數字越大的先執行,在聯合查詢(union)中可以為空,
select_type:查詢型別,主要分類有:
SIMPLE 簡單查詢,沒有用聯合或子查詢
PRIMARY 查詢中有子部分,最外圍的叫primary
含UNION關鍵字 聯合查詢
SUBQUERY 子查詢
DERIVED from串列中包含的子查詢
MATERIALIZED subquery的一種,物化子查詢
table:表名稱
partitions:表磁區資訊
type:連接查詢型別(表連接,如left join,right join,多表連接,復雜查詢等等)
從好到壞的順序為:system,const,eq_ref,ref,fulltext,ref or null,index merge,unique subquery,index subquery,range,index(索引掃描),ALL(全表掃描)
possible_keys:可能使用的索引
key:實際使用的索引
key_len:索引中使用的位元組長度,長度越短越好
ref:索引的哪一列被使用
rows:預估查詢的行數
filtered:條件過濾后,留存記錄數的百分比,100即是沒有過濾,比如id=1這樣的條件;數值越靠近100(越大)越好,
Extra:附加資訊,決議查詢的額外資訊
三. 擴展explain輸出格式
和show warnings配合使用
explain select * from city;
show warnings;
特殊標記在這里,
四. 獲取命名連接的執行計劃資訊
舉例:
SELECT CONNECTION_ID();
EXPLAIN FOR CONNECTION 750;
show processlist;
explain for connection 771;
五. 預估查詢性能
通過計算磁盤尋道來預估查詢性能,
計算key_len的值,


參考:

作者:hangwei
出處:http://www.cnblogs.com/hangwei/
關于作者:專注于開源平臺,分布式系統的架構設計與開發、資料庫性能調優等作業,如有問題或建議,請多多賜教!
著作權宣告:本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文鏈接,
如果您覺得文章對您有幫助,可以點擊文章右下角“推薦”一下,您的鼓勵是作者堅持原創和持續寫作的最大動力!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/540485.html
標籤:MySQL
