MySQL學習筆記-基礎架構

理解MySQL各組件之間如何協調工作,有助于深入理解MySQL服務器,下面展示了MySQL的基本架構圖

圖1-1:MySQL邏輯架構

圖1-1:Mysql服務器邏輯結構圖

第二層架構包含了大多數MySQL的核心服務功能,包括連接器、查詢緩存、分析器、優化器、執行器等,以及所有的內置函數(如日期、時間、數學和加密函數等),所有跨存儲引擎的功能都在這一層實現,比如存儲過程、觸發器、視圖等。

第三層包含了存儲引擎。存儲引擎負責MySQL中的數據存儲和讀取,每個存儲引擎都有它的優勢和劣勢。服務器通過API與存儲引擎進行通信。

依次看下每個組件的作用:

1.連接器

當客戶端連接到MySQL服務器時,服務器對其進行認證。認證基于用戶名、原始主機信息和密碼。認證通過后服務器會繼續驗證客戶端擁有的權限。之后,這個連接里面的權限判斷邏輯,都將依賴于此時讀到的權限。

2.優化與執行

2.1查詢緩存

對于select語句,在解析查詢之前,服務器會先檢查查詢緩存。如果能在其中找到對應的查詢,服務器直接返回查詢緩存中的結果集。

需要注意的是,MySQL 8.0開始沒有這個功能了。

2.2查詢解析

如果沒有命中查詢緩存,MySQL會解析查詢,并創建內部數據結構(解析樹)。

解析器先會做“詞法解析”。對一條SQL語句,MySQL需要識別出里面的字符串分別是什么,代表什么。

做完了這些識別以后,就要做“語法解析”。根據詞法解析的結果,語法解析器會根據語法規則,判斷輸入的這個SQL語句是否滿足MySQL語法。

2.3優化

經過了解析器,MySQL就知道你要做什么了。在開始執行之前,還要先經過優化器的處理。

如表的讀取順序,重寫查詢,選擇合適對索引等。

2.4執行

MySQL通過分析器知道了你要做什么,通過優化器知道了該怎么做,于是就進入了執行器階段,開始執行語句。

開始執行的時候,要先判斷一下你對這個表有沒有執行查詢的權限,如果沒有,就會返回沒有權限的錯誤

如果有權限,就打開表繼續執行。打開表的時候,執行器就會根據表的引擎定義,去使用這個引擎提供的接口。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容

  • 今天看到一位朋友寫的mysql筆記總結,覺得寫的很詳細很用心,這里轉載一下,供大家參考下,也希望大家能關注他原文地...
    信仰與初衷閱讀 4,749評論 0 30
  • 為了充分發揮MySQL的性能并順利地使用,就必須理解其設計。MySQL的靈活性體現在很多方面。例如,你可以通過配置...
    李文文丶閱讀 1,208評論 0 4
  • MYSQL應該是最流行的WEB后端數據庫。大量應用于PHP,Ruby,Python,Java 等Web語言開發項目...
    smooth00閱讀 2,369評論 0 16
  • 前面的章節我們介紹了如何設計最優的庫表結構、 如何建立最好的索引, 這些對于高性能來說是必不可少的。 但這些還不夠...
    好好學習Sun閱讀 2,683評論 0 38
  • 一、MySQL優化 MySQL優化從哪些方面入手: (1)存儲層(數據) 構建良好的數據結構??梢源蟠蟮奶嵘覀僑...
    寵辱不驚丶歲月靜好閱讀 2,462評論 1 8