您好,登錄后才能下訂單哦!
explain中怎么查看執(zhí)行計(jì)劃,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
查看user全表查詢的執(zhí)行計(jì)劃:
mysql> explain select * from user;
id表示select查詢語句的執(zhí)行順序或者是操作表的執(zhí)行順序。
id的值有二種情況:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)
id相同,表示執(zhí)行的順序是由上至下
id不同,id的序號(hào)會(huì)是遞增的,id的值越大表示優(yōu)先級(jí)越高,越先被執(zhí)行。
select_type表示查詢類型,它的值域?yàn)椋篠IMPLE、PRIMARY、SUBQUERY、DERIVED、UNION、UNION RESULT。
SIMPLE:簡單的查詢,不包含子查詢和UNION。
PRIMARY:如果查詢的語句中包含了復(fù)雜的子查詢,那么最外層的查詢被標(biāo)記為PRIMARY。
SUBQUERY:select或者where中的子查詢。
DERIVED:from列表中的子查詢生成的衍生表查詢。
UNION:聯(lián)合查詢。
UNION RESULT:從UNION表獲取結(jié)果的查詢。
數(shù)據(jù)行是從哪個(gè)表獲取的。
表示查詢使用了哪種類型,它的值域:ALL、index、range、ref、eq_ref、const、system。這是我們優(yōu)化時(shí)重點(diǎn)關(guān)注的一個(gè)指標(biāo)。
從最好到最差排序:
system>const>eq_ref>ref>range>index>ALL。
阿里巴巴SQL優(yōu)化規(guī)范:
【推薦】 SQL性能優(yōu)化的目標(biāo):至少要達(dá)到 range 級(jí)別,要求是ref級(jí)別,如果可以是const最好。
說明:
1)const 單表中最多只有一個(gè)匹配行(主鍵或者唯一索引),在優(yōu)化階段即可讀取到數(shù)據(jù)。
2)ref 指的是使用普通的索引(normal index)。
3)range 對(duì)索引進(jìn)行范圍檢索。
system:表中只有一行記錄的查詢,類似系統(tǒng)表。
eq_ref:多表時(shí)唯一索引掃描,對(duì)于每一個(gè)索引,表中只有一行記錄相匹配。
index:索引物理文件全掃描,速度比較慢,比全表掃描性能好一點(diǎn)。
ALL:全表掃描。
可能應(yīng)用在這個(gè)表的索引,可以會(huì)一個(gè)或者多個(gè),不一定是實(shí)際查詢使用的索引。
查詢中實(shí)際使用的索引,如果為null表示沒有使用索引。
如果是覆蓋索引,則只顯示在key中。
表示索引字段的最大可能長度,并不是實(shí)際的長度,它是根據(jù)表定義得到的,而不是通過表檢索得到的。長度越短越好。
表示索引的哪一列被使用了,可能是個(gè)常數(shù)。哪些列或者常量被用于查找索引列上的值。
根據(jù)表的信息和索引使用情況,大致估算的查找到所需的記錄需要掃描的行數(shù)。越小越好。
擴(kuò)展信息。
阿里巴巴SQL優(yōu)化規(guī)范:
【推薦】利用覆蓋索引來進(jìn)行查詢操作,避免回表。
說明:如果一本書需要知道第11章是什么標(biāo)題,會(huì)翻開第11章對(duì)應(yīng)的那一頁嗎?目錄瀏覽一下就好,這個(gè)目錄就是起到覆蓋索引的作用。
正例:能夠建立索引的種類分為主鍵索引、唯一索引、普通索引三種,而覆蓋索引只是一種查詢的一種效果,用explain的結(jié)果,extra列會(huì)出現(xiàn):using index。
這里提到了覆蓋索引,extra列會(huì)出現(xiàn)using index。
extra還有其他比較重要的信息:
using filesort:用到了外部的索引排序,即MySQL無法利用索引完成排序。
using temptory:使用了臨時(shí)表。
using where:使用了where過濾。
關(guān)于explain中怎么查看執(zhí)行計(jì)劃問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。