mysql的explain命令使用
explain命令是mysql自帶的乙個命令,用於解釋mysql將如何處理sql,執行順序和是否使用了索引之類,我們平常可以用於sql調優。
用法則是,在sql前面加上這個命令,比如我們的sql為,select * from table ,那麼我們使用這個命令則是 explain select * from table。
這裡我們執行一下命令,會得出乙個**:
接下裡我們逐個欄位來解釋含義
可以理解成sql的執行順序,id值越大,表明越先執行,如果id一樣,則按照從上往下的順序進行執行。
表示查詢的型別,常用有以下一些值
效能從高到底:system > const > eq_ref >ref > ref_or_null >index_merge > unique_subquery > index_subquery > range > index > all
這裡說明幾個常用的含義
表示mysql可能使用哪個欄位來進行表關聯查詢,也就是這些推薦的key,是可以加索引的
表示mysql在查詢中使用到的索引,就是真正的索引,如果為null,則表示沒有用到索引,需要進行優化。
表示查詢用到的索引長度(位元組數),原則上長度越短越好。
表示表連線之間的匹配關係,比如常量(const), 函式(func),欄位名等
表示需要掃瞄的行數,行數越大,表示需要掃瞄的資料量越大,那麼自然而然就會越慢了
具體的列舉值可以參考官方文件 :
這裡列舉一些常用的
MySQL的explain命令詳解
在mysql中,當需要對某條sql查詢語句進行分析時,我們經常會使用 explain 命令 或 desc 命令進行操作,分析sql語句時,explain 和 desc 的作用是一樣的。使用 explain 命令可以分析出sql查詢語句中索引的使用情況 掃瞄的行數 掃瞄的型別等等,以便幫助我們對索引和...
MySQL中EXPLAIN命令詳解
explain顯示了mysql如何使用索引來處理select語句以及連線表。可以幫助選擇更好的索引和寫出更優化的查詢語句。使用方法,在select語句前加上explain就可以了 如 explain select surname first name form a b where a id b id...
MySQL中EXPLAIN解釋命令
explain顯示了mysql如何使用索引來處理select語句以及連線表。可以幫助選擇更好的索引和寫出更優化的查詢語句。使用方法,在select語句前加上explain就可以了 如 explain select surname,first name form a,b where a.id b.id...