W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們使用EXPLAIN解析SQL執(zhí)行計(jì)劃時(shí),如果有下面幾種情況,就需要特別關(guān)注下了:
首先看下 type 這列的結(jié)果,如果有類型是 ALL 時(shí),表示預(yù)計(jì)會進(jìn)行全表掃描(full table scan)。通常全表掃描的代價(jià)是比較大的,建議創(chuàng)建適當(dāng)?shù)乃饕?,通過索引檢索避免全表掃描。此外,全索引掃描(full index scan)的代價(jià)有時(shí)候是比全表掃描還要高的,除非是基于InnoDB表的主鍵索引掃描。
再來看下 Extra 列的結(jié)果,如果有出現(xiàn) Using temporary 或者 Using filesort 則要多加關(guān)注:
Using temporary,表示需要?jiǎng)?chuàng)建臨時(shí)表以滿足需求,通常是因?yàn)镚ROUP BY的列沒有索引,或者GROUP BY和ORDER BY的列不一樣,也需要?jiǎng)?chuàng)建臨時(shí)表,建議添加適當(dāng)?shù)乃饕?/p>
Using filesort,表示無法利用索引完成排序,也有可能是因?yàn)槎啾磉B接時(shí),排序字段不是驅(qū)動表中的字段,因此也沒辦法利用索引完成排序,建議添加適當(dāng)?shù)乃饕?/p>
Using where,通常是因?yàn)槿頀呙杌蛉饕龗呙钑r(shí)(type 列顯示為ALL 或 index),又加上了WHERE條件,建議添加適當(dāng)?shù)乃饕?/p>
暫時(shí)想到上面幾個(gè),如果有遺漏,以后再補(bǔ)充。
其他狀態(tài)例如:Using index、Using index condition、Using index for group-by 則都還好,不用緊張。
更多詳情請看官方文檔:8.8.2 EXPLAIN Output Format
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: