列名 |
含義 |
id |
SELECT查詢的序列標(biāo)識符 |
select_type |
SELECT關(guān)鍵字對應(yīng)的查詢類型 |
table |
用到的表名 |
partitions |
匹配的分區(qū),對于未分區(qū)的表,值為 NULL |
type |
表的訪問方法 |
possible_keys |
可能用到的索引 |
key |
實際用到的索引 |
key_len |
所選索引的長度 |
ref |
當(dāng)使用索引等值查詢時,與索引作比較的列或常量 |
rows |
預(yù)計要讀取的行數(shù) |
filtered |
按表條件過濾后,留存的記錄數(shù)的百分比 |
Extra |
附加信息 |
下面我們來看下執(zhí)行計劃中部分重要列詳解:
SELECT 標(biāo)識符。這是查詢中 SELECT 的序號。如果該行引用其他行的并集結(jié)果,則值可以為 NULL 。當(dāng) id 相同時,執(zhí)行順序 由上向下;當(dāng) id 不同時,id 值越大,優(yōu)先級越高,越先執(zhí)行。
查詢的類型,常見的值有:
表示查詢用到的表名,每行都有對應(yīng)的表名,表名除了正常的表之外,也可能是以下列出的值:
查詢執(zhí)行的類型,描述了查詢是如何執(zhí)行的。所有值的順序從最優(yōu)到最差排序為:
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
常見的幾種類型具體含義如下:
possible_keys 列表示 MySQL 執(zhí)行查詢時可能用到的索引。如果這一列為 NULL ,則表示沒有可能用到的索引;這種情況下,需要檢查 WHERE 語句中所使用的的列,看是否可以通過給這些列中某個或多個添加索引的方法來提高查詢性能。
key 列表示 MySQL 實際使用到的索引。如果為 NULL,則表示未用到索引。
key_len 列表示 MySQL 實際使用的索引的最大長度;當(dāng)使用到聯(lián)合索引時,有可能是多個列的長度和。在滿足需求的前提下越短越好。如果 key 列顯示 NULL ,則 key_len 列也顯示 NULL 。
rows 列表示根據(jù)表統(tǒng)計信息及選用情況,大致估算出找到所需的記錄或所需讀取的行數(shù),數(shù)值越小越好。
這列包含了 MySQL 解析查詢的額外信息,通過這些信息,可以更準(zhǔn)確的理解 MySQL 到底是如何執(zhí)行查詢的。常見的值如下:
這里提醒下,當(dāng) Extra 列包含 Using filesort 或 Using temporary 時,MySQL 的性能可能會存在問題,需要盡可能避免。
以上就是帶你學(xué)習(xí)MySQL執(zhí)行計劃的詳細(xì)內(nèi)容,更多關(guān)于MySQL執(zhí)行計劃的資料請關(guān)注腳本之家其它相關(guān)文章!
標(biāo)簽:麗水 迪慶 徐州 龍巖 南充 西寧 無錫 自貢
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《帶你學(xué)習(xí)MySQL執(zhí)行計劃》,本文關(guān)鍵詞 帶你,學(xué)習(xí),MySQL,執(zhí)行,計劃,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。