mysql判断域为空_MySQL EXPLAIN 字段说明
id
查詢或關聯查詢的順序。
如果沒有子查詢且只有一個查詢,則為一個常數 1,表示第一步;
如果有子查詢,則子查詢為 1,父查詢為 2;
相同的 id 查詢順序為自上而下;
如果有子查詢,不同 id 值越大越先被執行;
NULL 為最后一步執行。
select_type
查詢類型。simple
查詢中不包含子查詢或者 UNION。
primary
查詢中若包含任何復雜的子部分,最外層查詢被標記為 primary。
subquery
在 SELECT 或 WHERE 列表中包含的子查詢。
derived
在 FROM 列表中包含的子查詢。
MySql 會遞歸執行這些子查詢并將結果存放在臨時表中。
union
若第二個 SELECT 出現在 UNION 之后則被標記為 union。
若 UNION 出現在 FROM 中的子句,外層 SELECT 被標記為 derived。
union result
從 UNION 表中獲取結果的 SELECT。
dependent union
SELECT 依賴于外層 union 查詢中發現的數據。
dependent subquery
SELECT 依賴于外層 subquery 查詢中發現的數據。
uncacheable subquery
subquery 的 SELECT 中某些特性阻止結果被緩存。
uncacheable union
union 的 SELECT 中某些特性阻止結果被緩存。
table
表名。
type
數據訪問、數據操作的類型。一般優化到 range 或 ref 級別。以下類型按性能由高到低列出。system
全表只有一行數據。
const
只有一條符合的數據,如主鍵、唯一索引等。
eq_ref
唯一性索引掃描。多表關聯查詢中,查詢主表中只有一條符合數據,如:SELECT * FROM t1 JOIN t2 ON t1.id = t2.id; 其中 t1 表的 id 為主鍵或唯一索引。
ref
非唯一性索引(普通索引)掃描。返回匹配某個單獨值的所有行。
fulltext
全文索引。
ref_or_null
類似 ref,不同的是在檢索的時候會額外搜索包含 NULL 值的記錄。
index_merge
查詢中使用多個索引。
unique_subquery
類似 eq_ref,不同的是用于 WHERE IN 語句。
index_subquery
類似 unique_subquery,不同的是用于非唯一索引。
range
只檢索給定范圍的行,使用一個索引來選擇行,=、<>、>、>=、
index
全索引掃描。
all
全表掃描。
possible_keys
顯示可能有利于高效的查詢的索引。
查詢的字段若存在索引,則該索引被列出,但不一定被被實際查詢使用到。
key
實際使用的索引。
如果為 NULL 則沒有使用索引。
key_len
所選索引的字節長度。
顯示的值為索引字段的最大可能長度,并非實際使用的長度。
在相同的查詢結果下條件精度越低越好,條件越少 key_len 越小。
ref
顯示與 key 一起選擇行時使用的列或常數。const
常量等值查詢。
NULL
無,如 >。
具體的某一列
關聯查詢中被 JOIN 的哪個表中 ON 相關的字段。
func
條件時用來表達式、函數或條件列發生了內部隱式轉換,
rows
掃描的行數。越少越好。
Extra
執行查詢過程中對查詢計劃的重要補充信息。
更多詳情參閱:https://dev.mysql.com/doc/refman/5.7/en/explain-output.htmlUsing filesort
使用了文件排序。
排序無法使用到索引時會出現,常見于 ORDER BY 和 GROUP BY 語句中。
對復合索引中字段 GROUP BY 時一般要將字段之前的字段按序加入分組條件中。
Using temporary
需要使用臨時表存儲結果集。
常見于 ORDER BY 和 GROUP BY 語句。
Using index
使用了覆蓋索引。
查詢時無需訪問表的數據行,通過索引就可獲取查詢數據,即查詢的列要被所建索引覆蓋。
如果同時出現了 Using where 表明索引用來執行索引鍵值查找;
如果沒有同時出現 Using where 表明索引用來讀取數據而非執行查找。
distinct
優化 distinct 操作,在找到第一匹配元組之后即停止找相同值的動作。
Using where
使用了 WHERE 過濾。
Using join buffer
使用了 JOIN 緩存。
impossible where
WHERE 子句的值總是 false,不能用來獲取任何數據。
select tables optimized away
在沒有 GROUP BY 子句的情況下,基于索引優化 MIN() / MAX() 操作或對于 MyISAM 存儲引擎優化 COUNT(*) 操作,不必等到執行階段再進行計算,操作查詢計劃生成階段即完成優化。
總結
以上是生活随笔為你收集整理的mysql判断域为空_MySQL EXPLAIN 字段说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Intmonp.exe是一种什么样的进程
- 下一篇: 项目进度计划甘特图_甘特图做项目进度计划