MySQL 基礎(chǔ)結(jié)構(gòu):一條SQL查詢語句是如何執(zhí)行

MySQL可以分為Server層和存儲引擎層兩部分错维。

Server層包含連接器(管理鏈接,權(quán)限驗(yàn)證)、查詢緩存(命中則直接返回結(jié)果)、分析器(詞法分析,語法分析)、
優(yōu)化器(執(zhí)行計(jì)劃生成,索引選擇)诱桂、執(zhí)行器等(執(zhí)行引擎,返回結(jié)果)。

存儲引擎層負(fù)責(zé)數(shù)據(jù)的存儲和提取呈昔。其架構(gòu)模式是插件式的挥等,支持InnoDB、MyISAM堤尾、Memory等多個存儲引擎肝劲。
從MySQL 5.5.5版本之后,InnoDB成為默認(rèn)引擎。

SQL的執(zhí)行順序: 通過mysql連接到服務(wù)器-->執(zhí)行select(查詢緩存),如果命中,直接返回,如果沒有命中,往下執(zhí)行-->分析器-->優(yōu)化器-->執(zhí)行器哀峻。

連接器

MySQL客戶端連接到服務(wù)端,如果長時間沒有指令,連接器就會自動將它斷開涡相。wait_timeout 默認(rèn)值為9小時。

建立長連接,長時間不斷,會導(dǎo)致OOM,如何解決:

  • 定期斷開長鏈接剩蟀。
  • 如果使用MySQL 5.7或更新版本,在執(zhí)行一個比較大的操作后,通過執(zhí)行mysql_reset_connection來重新初始化連接資源。

查詢緩存

MySQL拿到一個查詢請求后,會先到查詢緩存,之前是不是執(zhí)行過這條語句切威。如果直接在命中,直接返回;如果不在查詢緩存中,就會繼續(xù)后面執(zhí)行階段育特。

查詢緩存的失效非常頻繁,只要有對一個表的更新,這個表上所有的查詢緩存都會被清空。
MySQL提供了"按需使用"的方式先朦。將參數(shù)query_cache_type設(shè)置為DEMAND,對于默認(rèn)SQL的語句都不使用查詢緩存缰冤。
MySQL 8.0版本直接將查詢緩存的整塊功能刪除。

分析器

對語句進(jìn)行詞法分析和語法分析喳魏。

優(yōu)化器

優(yōu)化器是在表里面有多個索引的時候,決定使用那個索引;或者在一個語句有多表關(guān)聯(lián)的時候,決定各個表的連接順序棉浸。

執(zhí)行器

執(zhí)行器的流程:

  • 調(diào)用InnoDB引擎接口取這個表的第一行,進(jìn)行判斷,如果符合條件,存儲在結(jié)果集中,如果不符合條件,跳過;
  • 調(diào)用引擎接口取下一個,重復(fù)相同的判斷邏輯,直到取到這個表的最后一行。
  • 執(zhí)行器將上述遍歷過程中所有滿足條件的行組成的記錄集作為結(jié)果集返回給客戶端刺彩。

查詢慢查詢?nèi)罩?rows_examined表示掃描了多少行.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迷郑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子创倔,更是在濱河造成了極大的恐慌嗡害,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畦攘,死亡現(xiàn)場離奇詭異霸妹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)知押,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門叹螟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹃骂,“玉大人,你說我怎么就攤上這事罢绽∥废撸” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵有缆,是天一觀的道長象踊。 經(jīng)常有香客問我,道長棚壁,這世上最難降的妖魔是什么杯矩? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮袖外,結(jié)果婚禮上史隆,老公的妹妹穿的比我還像新娘。我一直安慰自己曼验,他們只是感情好泌射,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鬓照,像睡著了一般熔酷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上豺裆,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天拒秘,我揣著相機(jī)與錄音,去河邊找鬼臭猜。 笑死躺酒,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔑歌。 我是一名探鬼主播羹应,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼次屠!你這毒婦竟也來了园匹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帅矗,失蹤者是張志新(化名)和其女友劉穎偎肃,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浑此,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡累颂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片紊馏。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡料饥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朱监,到底是詐尸還是另有隱情岸啡,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布赫编,位于F島的核電站巡蘸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏擂送。R本人自食惡果不足惜悦荒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘹吨。 院中可真熱鬧搬味,春花似錦、人聲如沸蟀拷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽问芬。三九已至悦析,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間此衅,已是汗流浹背她按。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炕柔,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓媒佣,卻偏偏與公主長得像匕累,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子默伍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

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