一 .關鍵點id
id表示select查詢的執行順序,其中包含一組數字.可能出現的情況為如下的幾種:
[1]id相同,從上向下進行執行.(常見於多表聯查的情況下)
[2]id不同,id大的先執行.(常見於子查詢的情況下)
通過執行計畫的執行順序,我們可以獲取到sql真正的執行順序.
二 . select type 查詢的型別
[1] ****** : 簡單查詢,表示最為簡單的查詢.
[2]primary : 主查詢,常見在用於子查詢的時候,表示乙個主查詢.
[3] subquery : 表示子查詢.
[4]derived : 表示衍生表,一般通過臨時表出現.
[5] union 和 union result : 一般出現在union的結果集合並的情況下.
三 . table
該列表示查詢到底查詢的是哪一張表
四 . partition(分割槽,這個一般情況下,我們不太會去使用)
五 . type
表示查詢的訪問型別,這個是我們優化時最為常見的依據.
我們一般情況下,根據這個資訊進行優化.
[1] system : 最好的情況,一般情況下不會出現,只有表中含有一航記錄的情況下回出現.
[2]constant : 常量,一般情況情況下表示直接能查詢到的情況,一般情況下也不會出現.
[3]eq_ref : 當連表查詢的時候,我們常見於一對一的索引查詢的時候.
[4]ref : 當出現連表的情況下,我們的連線條件為索引的情況下,一般出現在一對多的情況下.
[5] range : 在使用索引的情況下,如出現如id > 2 這樣的情況,效能還不錯.
[6]index : 表示查詢的時候,使用到了索引.
[1] all : 全表掃瞄,一般效能是最差的.
六. possible_keys 和keys
表示是否使用到了索引內容,這個是我們分析sql的乙個核心點.
七:
mysql執行計畫id為空 UNION關鍵字
簡介 union 操作符用於合併兩個或多個 select 語句的結果集。例如,我有兩個表,表1記錄的是公司男員工的資料,包括年齡 姓名 職位。表2記錄的是公司女員工的資料,包括姓名 家庭住址 手機號等字段。這時,我們想要根據一定條件,查詢兩個表的姓名的集合。就會用到 union 關鍵字。union ...
mysql執行計畫id為空 UNION關鍵字
簡介 union 操作符用於合併兩個或多個 select 語句的結果集。例如,我有兩個表,表1記錄的是公司男員工的資料,包括年齡 姓名 職位。表2記錄的是公司女員工的資料,包括姓名 家庭住址 手機號等字段。這時,我們想要根據一定條件,查詢兩個表的姓名的集合。就會用到 union 關鍵字。union ...
mysql執行計畫id為空(UNION關鍵字)詳解
簡介 在工作過程中,有時候會對慢查詢進行調優。對於mysql的sql語句調優,mysql本身提供了強大的explain關鍵字用於查詢分析執行計畫。本文主要給大家介紹了關於mysql執行計畫id為空 union關鍵字 的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的 介紹吧 uni...