通过 EXPLAIN 分析低效 SQL 的执行计划
每個列的簡單解釋如下:
? select_type:表示 SELECT 的類型,常見的取值有 SIMPLE(簡單表,即不使用表連接
或者子查詢)、PRIMARY(主查詢,即外層的查詢)、UNION(UNION 中的第二個或者后面的查詢語句)、SUBQUERY(子查詢中的第一個 SELECT)等。
? table:輸出結果集的表。
? type:表示表的連接類型,性能由好到差的連接類型為 system(表中僅有一行,即常量表)、const(單表中最多有一個匹配行,例如 primary key 或者 unique index)、 eq_ref(對于前面的每一行,在此表中只查詢一條記錄,簡單來說,就是多表連接 中使用primarykey或者uniqueindex)、re(f 與eq_ref類似,區別在于不是使用primary key 或者 unique index,而是使用普通的索引)、ref_or_null(與 ref 類似,區別在于 條件中包含對 NULL 的查詢)、index_merge(索引合并優化)、unique_subquery(in 的后面是一個查詢主鍵字段的子查詢)、index_subquery(與 unique_subquery 類似, 區別在于 in 的后面是查詢非唯一索引字段的子查詢)、range(單表中的范圍查詢)、 index(對于前面的每一行,都通過查詢索引來得到數據)、all(對于前面的每一行,都通過全表掃描來得到數據)。
? ?possible_keys:表示查詢時,可能使用的索引。
? ?key:表示實際使用的索引。
? ?key_len:索引字段的長度。
? ?rows:掃描行的數量。
? ?Extra:執行情況的說明和描述。
轉載于:https://www.cnblogs.com/assasion/p/9888020.html
總結
以上是生活随笔為你收集整理的通过 EXPLAIN 分析低效 SQL 的执行计划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最小二乘法的本质原理
- 下一篇: opencv setTo()