參考:《mysql王者晉級之路》
如有錯誤的地方,請大家一定不吝指出,不勝感激。
還有,不夠全面,以後隨著理解的深入我會不斷加內容的。
我們寫完乙個sql語句,為了讓它高效能地執行,一定要explain一下,檢視一下它的執行計畫。
檢視心法:
1.首先從查詢型別type列開始檢視,如果出現all關鍵字,那麼不用繼續看了,全表掃瞄了
2.檢視key列,看是否使用了索引,null代表沒有使用索引
3.檢視rows列,該列代表在sql執行過程中被掃瞄的行數,該數值越大,意味著需要掃瞄的行數越多,相應的耗時就更長
有下列情況,我們可以建立索引:
1.經常被用於篩選條件的列(where後面的字段)
2.經常用於表連線的列
3.經常排序分組的列(order by/group by 後面的字段)
Mysql中explain命令檢視執行計畫
explain select from xx id 一組資料,表示任務被執行的順序,序號越大的任務越先執行.select type 不包含任何子查詢或union等查詢 primary 包含子查詢最外層查詢就顯示為 primary subquery 在select或 where字句中包含的查詢 der...
EXPLAIN命令檢視SQL執行計畫
列名 說明id select識別符,這是select的查詢序列號。select type select型別,可以為以下任何一種 table 輸出的行所引用的表 partitions 如果查詢是基於分割槽表的話,顯示查詢將訪問的分割槽。type 聯接型別。下面給出各種聯接型別,按照從最佳型別到最壞型別...
通過explain查詢分析SQL的執行計畫
mysql 之 explain 輸出分析 背景explain 可以使用在select,delete,insert,replace,and update 語句中,執行的結果會在每一行顯示用到的每乙個表的詳細資訊。簡單語句可能結果就只有一行,但是複雜的查詢語句會有很多行資料。explain 的使用 在 ...