Mysql Database 執行計劃: explain
阿新 • • 發佈:2018-11-10
id 顯示select語句的執行順序 (1) id相同時,執行順序由上至下 (2) 如果是子查詢,id的序號會遞增,id值越大優先順序越高,越先被執行 (3) id如果相同,可以認為是一組,從上往下順序執行;在所有組中,id值越大,優先順序越高,越先執行 select_type 顯示select語句的查詢型別 simple:select語句中不包含union與子查詢 primary:select語句中若包含子查詢,最外層的select語句 subquery:select語句中包含的子查詢 derived:select語句的from子句中包含的子查詢 union:通過union來連線多個select語句時,在union後面的select語句 table 顯示select語句查詢的表或衍生表 type 顯示mysql決定如何訪問表(訪問型別) ALL:全表掃描 index:全索引掃描 range:索引範圍掃描 ref:非唯一索引掃描,對於每個索引鍵,表中可能有多條記錄與之匹配 eq_ref:主鍵或唯一索引掃描,對於每個索引鍵,表中只有一條記錄與之匹配 possible_keys列 顯示mysql可能使用哪些索引來訪問表 key列 顯示mysql實際使用哪個索引來訪問表 key_len列 顯示索引中使用的位元組數,通過這個值可以判斷使用了索引中的哪些列 ref 顯示錶的連線匹配條件 rows 顯示mysql估算的在查詢過程中表需要被掃描多少行 Extra Using index:僅訪問索引就可以獲得結果集,無需訪問表 Using where:儲存引擎返回的資料需要進行過濾 Using temporary:在查詢過程中需要建立臨時表 Using filesort:在查詢過程中使用了檔案排序,因為排序列未建立索引 Using join buffer:在多表join查詢時,內表的連線列未建立索引,需要在join buffer中快取查詢中外表相關的所有列(block nest loop join)