- 執(zhí)行計(jì)劃可以幫助我們看到sql查詢的具體過程,我們可以根據(jù)此過程評(píng)估該sql的執(zhí)行效率。
- 語(yǔ)法
EXPLAIN <DQL>
- 字段分析
-
id
- select查詢的序列號(hào),標(biāo)識(shí)執(zhí)行的順序
- ID相同,執(zhí)行順序由上至下
- id不同,如果是子查詢,id的序號(hào)會(huì)遞增,id值越大優(yōu)先級(jí)越高,越先被執(zhí)行
- select查詢的序列號(hào),標(biāo)識(shí)執(zhí)行的順序
-
select_type
- SIMPLE
- 簡(jiǎn)單的select查詢,查詢中不包含子查詢或者union
`案例` EXPLAIN SELECT * FROM emp WHERE deptno = 30
- 簡(jiǎn)單的select查詢,查詢中不包含子查詢或者union
- PRIMARY
- 查詢中包含子部分,最外層查詢則被標(biāo)記為primary
`案例` EXPLAIN SELECT * FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE dname='SALES') ; 描述 EXPLAIN SELECT * FROM emp WHERE deptno = () ; select_type 為 primary
- SUBQUERY/MATERIALIZED
- SUBQUERY
- 表示select 或 where 列表 中包含了子查詢
案例 EXPLAIN SELECT * FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE dname='SALES') ; 描述 (SELECT deptno FROM dept WHERE dname='SALES')內(nèi)是一個(gè)子查詢 ,而此查詢 select_type = SUBQUERY 注意 where條件中使用 in 不是子查詢 而是普通查詢
- MATERIALIZED(where 后面 in 條件的子查詢)
- SUBQUERY
- UNION(union 中第二個(gè)或后面的select 語(yǔ)句)
- UNION RESULT
- SIMPLE
-
table( 查詢涉及到的表)
- 直接顯示表名或者表的別名
- <union M,N> 由 ID 為 M,N 查詢 union 產(chǎn)生的結(jié)果
- <subqueryN> 由ID為N 查詢產(chǎn)生的結(jié)果
-
type
- 訪問類型,SQL查詢優(yōu)化中一個(gè)很重要的指標(biāo),結(jié)果值從好到壞依次是 system > const > eq_ref > ref > range > index > All
- 值
-
system
1. 系統(tǒng)表,少量數(shù)據(jù),往往不需要進(jìn)行磁盤IO- 特點(diǎn):
從系統(tǒng)庫(kù)MYSQL的系統(tǒng)里查詢數(shù)據(jù),訪問類型為 system ,這些數(shù)據(jù)已經(jīng)加載到內(nèi)存中
不需要磁盤IO,這類掃描速度是最快的
- 特點(diǎn):
-
const(常量連接)
- 特點(diǎn)
命中主鍵(primary key) 或者唯一 (unique)索引被連接的部分是一個(gè)常量(const)值 - 列子
命中主鍵
命中唯一
- 特點(diǎn)
-
eq_ref
- 主鍵索引(primary key )或者 非空唯一索引(unique not null)等值掃描
- 特點(diǎn)
join 查詢 - 列子
命中主鍵 (primary key)索引 一對(duì)一等值連接
非空唯一 (unique not null)索引 一對(duì)一等值連接
-
ref
- 非主鍵非唯一索引等值掃描
- 特點(diǎn)
一對(duì)多等值連接,由eq_req 降級(jí)為 ref
-
range(范圍掃描)
- 特點(diǎn)
索引上的范圍查詢,他會(huì)在索引上掃碼特定范圍內(nèi)的值
between 、in 、>、<、>=、<=都是典型的范圍(range)查詢 - 例子
命中主鍵
- 特點(diǎn)
-
index(索引樹掃描)
- 特點(diǎn)
需要通過掃描 索引上的全部數(shù)據(jù) 來(lái)獲取結(jié)果,他僅比全表掃描快一點(diǎn) - 例子
全表查詢
- 特點(diǎn)
-
ALL全表掃描(full table scan )
- 特點(diǎn)
需要通過掃描非索引上的全部數(shù)據(jù)來(lái)獲取結(jié)果 - 例子
全表直接查詢
查詢不是索引的字段
- 特點(diǎn)
-
-
possible_keys
- 查詢過程中有可能使用到的索引
-
key
- 實(shí)際使用的索引,如果為 null ,則沒有使用索引
-
row
- 根據(jù)表統(tǒng)計(jì)信息或者索引選用情況,大致估算處找到所需記錄所需要讀取的行數(shù), 越小越好
-
filtered
- 表示返回結(jié)果的行數(shù) 占讀取行數(shù)的百分比, filtered 的值越大越好
-
extra
- Using filesort
MYSQL 對(duì)數(shù)據(jù)使用一個(gè)外部的文件內(nèi)容進(jìn)行了排序,而不是按照表內(nèi)的索引進(jìn)行排序讀取 - Using temporary
使用臨時(shí)表保存中間結(jié)果,也就是說 mysql在對(duì)查詢結(jié)果排序時(shí)使用了臨時(shí)表,常見于 order by 或者 group by - Using index
表示 SQL操作中使用了覆蓋索引(Covering index), 避免了訪問表的數(shù)據(jù)行,效率高 - Using index condition
表示SQL 操作命中了索引,但不是所有的列數(shù)據(jù)都在索引樹上,還需要訪問實(shí)際的行記錄。 - Using where
表示SQL操作使用了 where過濾條件 - select tables optimized away
基于索引優(yōu)化 MIN/MAX操作 或者M(jìn)yISAM存儲(chǔ)引擎優(yōu)化count(*)操作,不必等到執(zhí)行階段在井陘計(jì)算,查詢執(zhí)行計(jì)劃生成的階段即可完成優(yōu)化 - Using join buffer(Block Nested Loop)
表示SQL操作使用了關(guān)聯(lián)查詢或者 子查詢,且需要進(jìn)行嵌套循環(huán)計(jì)算
- Using filesort
-
mysql-執(zhí)行計(jì)劃
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...