幾句話讓你明白mysql底層執(zhí)行順序

MySQL的語(yǔ)句一共分為11步,如下圖所標(biāo)注的那樣,最先執(zhí)行的總是FROM操作恕洲,最后執(zhí)行的是LIMIT操作来涨。其中每一個(gè)操作都會(huì)產(chǎn)生一張?zhí)摂M的表图焰,這個(gè)虛擬的表作為一個(gè)處理的輸入,只是這些虛擬的表對(duì)用戶來(lái)說(shuō)是透明的蹦掐,但是只有最后一個(gè)虛擬的表才會(huì)被作為結(jié)果返回技羔。如果沒有在語(yǔ)句中指定某一個(gè)子句,那么將會(huì)跳過相應(yīng)的步驟卧抗。

下面我們來(lái)具體分析一下查詢處理的每一個(gè)階段

FORM: 對(duì)FROM的左邊的表和右邊的表計(jì)算笛卡爾積藤滥。產(chǎn)生虛表VT1

ON: 對(duì)虛表VT1進(jìn)行ON篩選,只有那些符合的行才會(huì)被記錄在虛表VT2中社裆。

JOIN: 如果指定了OUTER JOIN(比如left join拙绊、 right join),那么保留表中未匹配的行就會(huì)作為外部行添加到虛擬表VT2中,產(chǎn)生虛擬表VT3, rug from子句中包含兩個(gè)以上的表的話标沪,那么就會(huì)對(duì)上一個(gè)join連接產(chǎn)生的結(jié)果VT3和下一個(gè)表重復(fù)執(zhí)行步驟1~3這三個(gè)步驟榄攀,一直到處理完所有的表為止。

WHERE: 對(duì)虛擬表VT3進(jìn)行WHERE條件過濾金句。只有符合的記錄才會(huì)被插入到虛擬表VT4中檩赢。

GROUP BY: 根據(jù)group by子句中的列,對(duì)VT4中的記錄進(jìn)行分組操作趴梢,產(chǎn)生VT5.

CUBE | ROLLUP: 對(duì)表VT5進(jìn)行cube或者rollup操作漠畜,產(chǎn)生表VT6.

HAVING: 對(duì)虛擬表VT6應(yīng)用having過濾,只有符合的記錄才會(huì)被 插入到虛擬表VT7中坞靶。

SELECT: 執(zhí)行select操作憔狞,選擇指定的列,插入到虛擬表VT8中彰阴。

DISTINCT: 對(duì)VT8中的記錄進(jìn)行去重瘾敢。產(chǎn)生虛擬表VT9.

ORDER BY: 將虛擬表VT9中的記錄按照進(jìn)行排序操作,產(chǎn)生虛擬表VT10.

LIMIT:取出指定行的記錄尿这,產(chǎn)生虛擬表VT11, 并將結(jié)果返回簇抵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市射众,隨后出現(xiàn)的幾起案子碟摆,更是在濱河造成了極大的恐慌,老刑警劉巖叨橱,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件典蜕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡罗洗,警方通過查閱死者的電腦和手機(jī)愉舔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伙菜,“玉大人轩缤,你說(shuō)我怎么就攤上這事》啡疲” “怎么了火的?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)淑倾。 經(jīng)常有香客問我卫玖,道長(zhǎng),這世上最難降的妖魔是什么踊淳? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上迂尝,老公的妹妹穿的比我還像新娘脱茉。我一直安慰自己,他們只是感情好垄开,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布琴许。 她就那樣靜靜地躺著,像睡著了一般溉躲。 火紅的嫁衣襯著肌膚如雪榜田。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天锻梳,我揣著相機(jī)與錄音箭券,去河邊找鬼。 笑死疑枯,一個(gè)胖子當(dāng)著我的面吹牛辩块,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荆永,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼废亭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了具钥?” 一聲冷哼從身側(cè)響起豆村,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骂删,沒想到半個(gè)月后掌动,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桃漾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年坏匪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撬统。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡适滓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出恋追,到底是詐尸還是另有隱情凭迹,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布苦囱,位于F島的核電站嗅绸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏撕彤。R本人自食惡果不足惜鱼鸠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一猛拴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚀狰,春花似錦愉昆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至扮授,卻和暖如春芳室,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刹勃。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工堪侯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人深夯。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓抖格,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親咕晋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雹拄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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

  • MySQL技術(shù)內(nèi)幕:SQL編程 姜承堯 第1章 SQL編程 >> B是由MySQL創(chuàng)始人之一Monty分支的一個(gè)版...
    沉默劍士閱讀 2,428評(píng)論 0 3
  • 查詢語(yǔ)句中select from where group by having order by limit的執(zhí)行順...
    許小小晴閱讀 3,215評(píng)論 1 3
  • 在學(xué)習(xí)sql的過程中發(fā)現(xiàn)一篇簡(jiǎn)潔有力的描述sql語(yǔ)句執(zhí)行順序干貨文章,特此在此做個(gè)筆記記錄一下文章重點(diǎn)用來(lái)復(fù)習(xí)掌呜。原...
    StoneHeart閱讀 974評(píng)論 2 4
  • *女子本弱质蕉,為母則剛势篡。 公交車上,如果有人踩你一腳模暗,你會(huì)怎樣禁悠? 有人無(wú)所謂,不作理會(huì)兑宇。有人發(fā)怒碍侦,大喝斥責(zé)。 而有人...
    笑靨薇涼閱讀 347評(píng)論 1 3
  • 百日練100天讀100本書隶糕,第24天瓷产。今天讀的書名叫《寫作業(yè)不用靠媽媽》。講的是:宙思一想到要?jiǎng)幽X筋的作業(yè)...
    夢(mèng)境里的冰雪閱讀 205評(píng)論 0 1