explain查詢字段解析

1.id

一個(gè)sql中有多少個(gè)select就有多少個(gè)id滥比,id值越大執(zhí)行優(yōu)先級(jí)越高亚脆,id相同則從上往下執(zhí)行,id為NULL最后執(zhí)行盲泛。

2.select_type列

  • simple 簡(jiǎn)單查詢濒持。查詢不包含子查詢和union
  • primary 復(fù)雜查詢中最外層的 select
  • subquery 包含在 select 中的子查詢(不在 from 子句中)
  • derived 包含在 from 子句中的子查詢。MySQL會(huì)將結(jié)果存放在一個(gè)臨時(shí)表中寺滚,也稱為派生表
  • union 在 union 中的第二個(gè)和隨后的 select

3.table列

表示 explain 的一行正在訪問(wèn)哪個(gè)表柑营。derivenN:子查詢使用的那個(gè)表,union1,2:表示union參與的select 行id村视。

4.type列

這一列表示關(guān)聯(lián)類型或訪問(wèn)類型官套。
最優(yōu)到最差分別為:system > const > eq_ref > ref > range > index > ALL,一般來(lái)說(shuō)蚁孔,得保證查詢達(dá)到range級(jí)別奶赔,最好達(dá)到ref。當(dāng)這一列為null勒虾,原因是mysql能夠在優(yōu)化階段分解查詢語(yǔ)句纺阔,在執(zhí)行階段用不著再訪問(wèn)表或索引。
const,system: 用于primary key 或 unique key 的所有列與常數(shù)比較時(shí)修然,所以表最多有一個(gè)匹配行笛钝,讀取1次质况,速度比較快。system是const的特例玻靡,表里只有一條元組匹配時(shí)為system结榄。
eq_ref: primary key 或 unique key 索引的所有部分被連接使用 ,最多只會(huì)返回一條符合條件的記錄囤捻。
ref: 相比 eq_ref臼朗,不使用唯一索引,而是使用普通索引或者唯一性索引的部分前綴蝎土,索引要和某個(gè)值相比較视哑,可能會(huì)找到多個(gè)符合條件的行。
range: 范圍掃描通常出現(xiàn)在 in(), between ,> ,<, >= 等操作中誊涯。使用一個(gè)索引來(lái)檢索給定范圍的行挡毅。
index: 掃描全索引就能拿到結(jié)果,一般是掃描某個(gè)二級(jí)索引暴构,這種掃描不會(huì)從索引樹(shù)根節(jié)點(diǎn)開(kāi)始快速查找跪呈,而是直接
對(duì)二級(jí)索引的葉子節(jié)點(diǎn)遍歷和掃描,速度還是比較慢的取逾,這種查詢一般為使用覆蓋索引耗绿,二級(jí)索引一般比較小,所以這種通常比ALL快一些砾隅。
ALL: 即全表掃描误阻,掃描你的聚簇索引的所有葉子節(jié)點(diǎn)。通常情況下這需要增加索引來(lái)進(jìn)行優(yōu)化了琉用。

5.possible_keys列

explain 時(shí)可能出現(xiàn) possible_keys 有列堕绩,而 key 顯示 NULL 的情況,這種情況是因?yàn)楸碇袛?shù)據(jù)不多邑时,mysql認(rèn)為索引對(duì)此查詢幫助不大,選擇了全表查詢特姐。

6.key列

這一列顯示mysql實(shí)際采用哪個(gè)索引來(lái)優(yōu)化對(duì)該表的訪問(wèn)晶丘。

7. key_len列

這一列顯示了mysql在索引里使用的字節(jié)數(shù),通過(guò)這個(gè)值可以算出具體使用了索引中的哪些列唐含。

char(n):如果存漢字長(zhǎng)度就是 3n 字節(jié)
varchar(n):如果存漢字則長(zhǎng)度是 3n + 2 字節(jié)浅浮,加的2字節(jié)用來(lái)存儲(chǔ)字符串長(zhǎng)度,因?yàn)?br> varchar是變長(zhǎng)字符串
tinyint:1字節(jié)
smallint:2字節(jié)
int:4字節(jié)
bigint:8字節(jié)
date:3字節(jié)
timestamp:4字節(jié)
datetime:8字節(jié)
如果字段允許為 NULL捷枯,需要1字節(jié)記錄是否為 NULL

8. ref列

這一列顯示了在key列記錄的索引中滚秩,表查找值所用到的列或常量,常見(jiàn)的有:const(常量)

9. rows列

這一列是mysql估計(jì)要讀取并檢測(cè)的行數(shù)淮捆,注意這個(gè)不是結(jié)果集里的行數(shù)郁油。

10. Extra列

Using index:使用覆蓋索引
Using where:使用 where 語(yǔ)句來(lái)處理結(jié)果本股,并且查詢的列未被索引覆蓋
Using index condition:查詢的列不完全被索引覆蓋,where條件中是一個(gè)前導(dǎo)列的范圍桐腌;
Using temporary:mysql需要?jiǎng)?chuàng)建一張臨時(shí)表來(lái)處理查詢拄显。出現(xiàn)這種情況一般是要進(jìn)行優(yōu)化的,首先是想到用索
引來(lái)優(yōu)化案站。
Using filesort:將用外部排序而不是索引排序躬审,數(shù)據(jù)較小時(shí)從內(nèi)存排序,否則需要在磁盤(pán)完成排序蟆盐。這種情況下一般也是要考慮使用索引來(lái)優(yōu)化的承边。
Select tables optimized away:使用某些聚合函數(shù)(比如 max、min)來(lái)訪問(wèn)存在索引的某個(gè)字段時(shí)石挂,這種查詢只會(huì)走索引樹(shù)博助。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市誊稚,隨后出現(xiàn)的幾起案子翔始,更是在濱河造成了極大的恐慌,老刑警劉巖里伯,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件城瞎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡疾瓮,警方通過(guò)查閱死者的電腦和手機(jī)脖镀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)狼电,“玉大人蜒灰,你說(shuō)我怎么就攤上這事〖绲” “怎么了强窖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)削祈。 經(jīng)常有香客問(wèn)我翅溺,道長(zhǎng),這世上最難降的妖魔是什么髓抑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任咙崎,我火速辦了婚禮,結(jié)果婚禮上吨拍,老公的妹妹穿的比我還像新娘褪猛。我一直安慰自己,他們只是感情好羹饰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布伊滋。 她就那樣靜靜地躺著碳却,像睡著了一般。 火紅的嫁衣襯著肌膚如雪新啼。 梳的紋絲不亂的頭發(fā)上追城,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音燥撞,去河邊找鬼座柱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛物舒,可吹牛的內(nèi)容都是我干的色洞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼冠胯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼火诸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起荠察,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤置蜀,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后悉盆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體盯荤,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年焕盟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秋秤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脚翘,死狀恐怖灼卢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情来农,我是刑警寧澤鞋真,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站沃于,受9級(jí)特大地震影響灿巧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揽涮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饿肺。 院中可真熱鬧蒋困,春花似錦、人聲如沸敬辣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至村刨,卻和暖如春告抄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嵌牺。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工打洼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逆粹。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓募疮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親僻弹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阿浓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容