MySQL 體系架構(gòu)——概覽

學(xué)習(xí) MySQL 的整體架構(gòu)之前,我們先了解一下如何設(shè)計(jì)一個(gè)關(guān)系型數(shù)據(jù);我們?cè)O(shè)計(jì)數(shù)據(jù)庫的時(shí)候扒磁,主要需要考慮兩個(gè)核心內(nèi)容袱箱,第一個(gè)是數(shù)據(jù)的存儲(chǔ)位置【磁盤或固態(tài)硬盤等】遏乔,第二個(gè)是提供程序?qū)嵗僮飨鄳?yīng)的數(shù)據(jù)
其中最重要的是如何設(shè)計(jì)操作數(shù)據(jù)的程序发笔,具體設(shè)計(jì)如下圖

設(shè)計(jì)一個(gè)關(guān)系型數(shù)據(jù)庫

MySQL 整體架構(gòu)分為三層盟萨,分別是【客戶端層】、【服務(wù)層】了讨、【存儲(chǔ)引擎層】鸯旁;下面將分別介紹各個(gè)層級(jí)的作用

MySQL 體系結(jié)構(gòu)

客戶端層

任何系統(tǒng)都要提供對(duì)外服務(wù)的接口,MySQL 也不例外量蕊;這一層代表了各種可以通過 MySQL 連接協(xié)議連接到 MySQL 的客戶端铺罢。
這一層主要完成的是連接的處理、授權(quán)認(rèn)證残炮、安全等功能韭赘。【驗(yàn)證賬戶势就、密碼泉瞻、HostName】
每個(gè)連接到 MySQL 的客戶端都會(huì)在服務(wù)器的進(jìn)程中擁有一個(gè)線程,這個(gè)連接的查詢只會(huì)在這個(gè)登陸的線程中執(zhí)行苞冯。
我們常用的客戶端有 Java 袖牙、PHP、JDBC舅锄、ODBC等

1)連接處理

當(dāng)一個(gè)客戶端向服務(wù)端發(fā)送連接請(qǐng)求后鞭达,MySQL 服務(wù)器 會(huì)從線程池中分配一個(gè)線程來和客戶端進(jìn)行連接,以后該客戶端的請(qǐng)求都會(huì)被分配到該線程上。MySQL Server為了提高性能畴蹭,提供了線程池坦仍,減少了創(chuàng)建線程和釋放線程所花費(fèi)的時(shí)間。

2)用戶鑒權(quán)

當(dāng)客戶端向MySQL服務(wù)端發(fā)起連接請(qǐng)求后叨襟,MySQL server會(huì)對(duì)發(fā)起連接的用戶進(jìn)行鑒權(quán)處理繁扎,MySQL鑒權(quán)依據(jù)是: 用戶名,客戶端主機(jī)地址和用戶密碼

3)安全

當(dāng)客戶連接到MySQL server后糊闽,MySQL server會(huì)檢測(cè)用戶有哪些可執(zhí)行的權(quán)限

服務(wù)層

大多數(shù)的MySQL 核心服務(wù)都在這一層梳玫,包含有連接管理組件、查詢緩存組件右犹、查詢解析器組件提澎、查詢優(yōu)化器組件、SQL 接口定義組件傀履、系統(tǒng)管理組件虱朵。系統(tǒng)所有的跨存儲(chǔ)引擎層的功能都是在這一層實(shí)現(xiàn)的,因?yàn)檫@一層被稱為 MySQL 服務(wù)器钓账,這一層實(shí)現(xiàn)了所有與存儲(chǔ)引擎無關(guān)的特性碴犬;
所謂與存儲(chǔ)引擎無關(guān)的特性是指:諸如我們的SELECT 語句,他對(duì)于所有的存儲(chǔ)引擎來說梆暮,都是獲取數(shù)據(jù)服协,并依據(jù)我們的條件語句過濾數(shù)據(jù),并顯示給用戶啦粹,這個(gè)SELECT的接口定義是在我們的服務(wù)層偿荷,但是具體如何從文件中獲取數(shù)據(jù),完全取決于存儲(chǔ)引擎層的實(shí)現(xiàn)

1)查詢緩存

緩存查詢的數(shù)據(jù)

2)查詢解析器

通過檢查SQL查詢中的每個(gè)字符來檢查SQL語法唠椭,并為每個(gè)SQL查詢生成SQL_ID跳纳,如果語句語法有錯(cuò)誤,則返回相應(yīng)的錯(cuò)誤信息贪嫂。語法檢查通過后寺庄,解析器會(huì)查詢緩存,如果緩存中有對(duì)應(yīng)的語句力崇,就直接返回結(jié)果不進(jìn)行接下來的優(yōu)化執(zhí)行操作斗塘。

3)查詢優(yōu)化器

根據(jù)存儲(chǔ)引擎創(chuàng)建有效的查詢執(zhí)行計(jì)劃。它將重寫一個(gè)查詢亮靴。例如:InnoDB共享緩沖區(qū)馍盟,優(yōu)化器將從它得到預(yù)緩存的數(shù)據(jù)。使用表統(tǒng)計(jì)信息優(yōu)化器將為SQL查詢生成執(zhí)行計(jì)劃茧吊。它的作用主要是對(duì)查詢語句進(jìn)行優(yōu)化贞岭,包括選擇合適的索引八毯,數(shù)據(jù)的讀取方式。

4)SQL接口組件

接收 SQL 進(jìn)行處理曹步,得到用戶所需要的結(jié)果宪彩,通過包含DDL休讳、DML讲婚、存儲(chǔ)過程【不用】、觸發(fā)器等

5)系統(tǒng)管理組件

提供【數(shù)據(jù)庫備份和恢復(fù)】俊柔、【數(shù)據(jù)庫安全管理筹麸,如用戶及權(quán)限管理】、【數(shù)據(jù)庫復(fù)制管理】雏婶、【數(shù)據(jù)庫集群管理】物赶、【數(shù)據(jù)庫分區(qū),分庫留晚,分表管理】

存儲(chǔ)引擎

存儲(chǔ)引擎的主要功能是存儲(chǔ)數(shù)據(jù)酵紫、為存儲(chǔ)的數(shù)據(jù)建立插入、刪除错维、修改奖地、查詢的功能
后續(xù)會(huì)單獨(dú)分析 MySQL 常用的存儲(chǔ)引擎 MyISM、Inndb

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赋焕,一起剝皮案震驚了整個(gè)濱河市参歹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌隆判,老刑警劉巖犬庇,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侨嘀,居然都是意外死亡臭挽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門咬腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欢峰,“玉大人,你說我怎么就攤上這事郎汪〕嗌蓿” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵煞赢,是天一觀的道長(zhǎng)抛计。 經(jīng)常有香客問我,道長(zhǎng)照筑,這世上最難降的妖魔是什么吹截? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任瘦陈,我火速辦了婚禮,結(jié)果婚禮上波俄,老公的妹妹穿的比我還像新娘晨逝。我一直安慰自己,他們只是感情好懦铺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布捉貌。 她就那樣靜靜地躺著,像睡著了一般冬念。 火紅的嫁衣襯著肌膚如雪趁窃。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天急前,我揣著相機(jī)與錄音醒陆,去河邊找鬼。 笑死裆针,一個(gè)胖子當(dāng)著我的面吹牛刨摩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播世吨,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼澡刹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了另假?” 一聲冷哼從身側(cè)響起像屋,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎边篮,沒想到半個(gè)月后己莺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戈轿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年凌受,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片思杯。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胜蛉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出色乾,到底是詐尸還是另有隱情誊册,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布暖璧,位于F島的核電站案怯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏澎办。R本人自食惡果不足惜嘲碱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一金砍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧麦锯,春花似錦恕稠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宵蛀,卻和暖如春昆著,著一層夾襖步出監(jiān)牢的瞬間县貌,已是汗流浹背术陶。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留煤痕,地道東北人梧宫。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像摆碉,于是被迫代替她去往敵國和親塘匣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

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