Mysql體系——整體架構(gòu)

內(nèi)容

  • Mysql 體系結(jié)構(gòu)
  • Innodb 體系結(jié)構(gòu)
  • Innodb 文件
  • Innodb 特性

一 Mysql 體系結(jié)構(gòu)

mysql總體邏輯架構(gòu)圖如下所示:


image.png

MySQL邏輯系統(tǒng)架構(gòu)分為3層:

  • 應(yīng)用層
  • MySQL服務(wù)層
  • 存儲引擎層
    1.1 應(yīng)用層
    應(yīng)用層是MySQL體系架構(gòu)的最上層鞍盗,主要包含如下內(nèi)容:
  • 連接處理
  • 用戶鑒權(quán)
  • 安全管理
  1. 連接處理:當(dāng)一個客戶端向服務(wù)端發(fā)送連接請求后孟岛,MySQL server會從線程池中分配一個線程來和客戶端進行連接重绷,以后該客戶端的請求都會被分配到該線程上夺荒。MySQL Server為了提高性能肩民,提供了線程池,減少了創(chuàng)建線程和釋放線程所花費的時間掰伸。

  2. 用戶鑒權(quán): 當(dāng)客戶端向MySQL服務(wù)端發(fā)起連接請求后划栓,MySQL server會對發(fā)起連接的用戶進行鑒權(quán)處理,MySQL鑒權(quán)依據(jù)是: 用戶名损姜,客戶端主機地址和用戶密碼

  3. 安全管理: 當(dāng)客戶連接到MySQL server后饰剥,MySQL server會根據(jù)用戶的權(quán)限來判斷用戶具體可執(zhí)行哪些操作。MySQL 提供的部分權(quán)限的如下:

2.2 MySQL 服務(wù)層
該層是MySQL Server的核心層摧阅,提供了MySQL Server數(shù)據(jù)庫系統(tǒng)的所有邏輯功能汰蓉,該層可以分為如下不同的組件:

  • MySQL Management Server & utilities(系統(tǒng)管理)
  • SQL Interface(SQL 接口)
  • SQL Parser(SQL 解析器)
  • Optimizer (查詢優(yōu)化器)
  • Caches & buffers(緩存)
  1. MySQL Management Server & utilities(系統(tǒng)管理) 提供了豐富的數(shù)據(jù)庫管理功能,具體如下:
  • 數(shù)據(jù)庫備份和恢復(fù)
  • 數(shù)據(jù)庫安全管理棒卷,如用戶及權(quán)限管理
  • 數(shù)據(jù)庫復(fù)制管理
  • 數(shù)據(jù)庫集群管理
  • 數(shù)據(jù)庫分區(qū)顾孽,分庫,分表管理
  • 數(shù)據(jù)庫元數(shù)據(jù)管理
  1. SQL Interface(SQL 接口) SQL接口比规,接收用戶的SQL命令并進行處理若厚,得到用戶所需要的結(jié)果,具體處理功能如下:
  • Data Manipulation Language (DML).
  • Data Definition Language (DDL).
  • 存儲過程
  • 視圖
  • 觸發(fā)器
  1. SQL Parser(SQL 解析器): 解析器的作用主要是解析查詢語句蜒什,最終生成語法樹测秸。首先解析器會對查詢語句進行語法分析,如果語句語法有錯誤,則返回相應(yīng)的錯誤信息乞封。語法檢查通過后,解析器會查詢緩存岗憋,如果緩存中有對應(yīng)的語句肃晚,就直接返回結(jié)果不進行接下來的優(yōu)化執(zhí)行操作。
  2. Optimizer(查詢優(yōu)化器): 優(yōu)化器的作用主要是對查詢語句進行優(yōu)化仔戈,包括選擇合適的索引关串,數(shù)據(jù)的讀取方式。
  3. Caches & buffers(緩存) :包括全局和引擎特定的緩存监徘,提高查詢的效率晋修。如果查詢緩存中有命中的查詢結(jié)果,則查詢語句就可以從緩存中取數(shù)據(jù)凰盔,無須再通過解析和執(zhí)行墓卦。這個緩存機制是由一系列小緩存組成,如表緩存户敬、記錄緩存落剪、key緩存、權(quán)限緩存等尿庐。

2.3 存儲引擎層
存儲引擎: 存儲引擎是MySQL中具體與文件打交道的子系統(tǒng)忠怖,也是MySQL最有特色的地方。MySQL區(qū)別于其他數(shù)據(jù)庫的最重要特點是其插件式的表存儲引擎抄瑟。存儲引擎是表級別的凡泣,同一個db下面不用表可以指定不同的存儲引擎;

二 Innodb 體系結(jié)構(gòu)

https://juejin.im/post/6844903869697228807
https://developer.aliyun.com/article/743573

三 Innodb文件

  • 表空間
  • 重做日志

3.1 表空間
可以通過以下查看mysql 數(shù)據(jù)目錄

show global variables like "%datadir%";

在數(shù)據(jù)目錄下皮假,我們可以看到一個ibdata1的問題鞋拟,這個就是mysql默認(rèn)的表空間文件,表空間文件是innodb引擎邏輯結(jié)構(gòu)的最高層惹资,所有的數(shù)據(jù)都被邏輯的存放在這個空間严卖,表空間由段、區(qū)布轿、頁組成哮笆;


image.png

如果innodb_file_per_table參數(shù)設(shè)置為on,則會為每個表建立一個單獨的表空間汰扭,命名為tablename.ibd,稠肘,例如下面創(chuàng)建了兩個表t1和t2,t1.ibd會存儲表t1的數(shù)據(jù)萝毛、索引和插入緩沖bitmap项阴,其他的數(shù)據(jù),例如:插入緩沖索引頁、undo信息等還是會存儲在公共的表空間ibdata1中环揽;


image.png

3.2 重做日志
redo日志是innodb引擎保證事務(wù)持久性的關(guān)鍵略荡,每個引擎有一個重做日志組,一個重做日志組有兩個重做日志文件歉胶,先寫一個汛兜,一個寫滿換寫第二個,第二個寫滿在重寫寫第一個通今;如下所示的ib_logfile0和ib_logfile1文件就是默認(rèn)的重做日志組
image.png

四 Innodb 特性

引用:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末粥谬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辫塌,更是在濱河造成了極大的恐慌漏策,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臼氨,死亡現(xiàn)場離奇詭異掺喻,居然都是意外死亡,警方通過查閱死者的電腦和手機储矩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門巢寡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椰苟,你說我怎么就攤上這事抑月。” “怎么了舆蝴?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵谦絮,是天一觀的道長。 經(jīng)常有香客問我洁仗,道長层皱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任赠潦,我火速辦了婚禮叫胖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘她奥。我一直安慰自己瓮增,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布哩俭。 她就那樣靜靜地躺著绷跑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凡资。 梳的紋絲不亂的頭發(fā)上砸捏,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼垦藏。 笑死梆暖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的掂骏。 我是一名探鬼主播轰驳,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芭挽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝗肪,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤袜爪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后薛闪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辛馆,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年豁延,在試婚紗的時候發(fā)現(xiàn)自己被綠了昙篙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡诱咏,死狀恐怖苔可,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袋狞,我是刑警寧澤焚辅,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站苟鸯,受9級特大地震影響同蜻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜早处,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一湾蔓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砌梆,春花似錦默责、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至诉儒,卻和暖如春葡缰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工泛释, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滤愕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓怜校,卻偏偏與公主長得像间影,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子茄茁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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

  • 一魂贬、開篇 本系列文章主要目的是為了個人學(xué)習(xí)總結(jié)。如果你正在學(xué)習(xí)裙顽,也歡迎閱讀交流付燥,指正不足。 本系列文章將介紹 My...
    編走編想閱讀 681評論 0 1
  • 一 : 數(shù)據(jù)庫和數(shù)據(jù)庫實例 在MySQL的學(xué)習(xí)研究中愈犹,存在兩個非常容易混淆的概念键科,即數(shù)據(jù)庫和數(shù)據(jù)庫實例。在MySQ...
    AI喬治閱讀 824評論 0 3
  • SQL架構(gòu)圖 InnoDB 存儲引擎層體系結(jié)構(gòu)圖 mysql的組成部分: mysql是由sql查詢接口漩怎,解析器勋颖,優(yōu)...
    lijincheng閱讀 704評論 0 2
  • 學(xué)習(xí) MySQL 的整體架構(gòu)之前,我們先了解一下如何設(shè)計一個關(guān)系型數(shù)據(jù)勋锤;我們設(shè)計數(shù)據(jù)庫的時候饭玲,主要需要考慮兩個核心...
    lframe閱讀 809評論 0 0
  • 上圖(圖是百度找的) mysql邏輯架構(gòu):連接層、服務(wù)層叁执、引擎層咱枉、存儲層,四層徒恋。 Connectors 連接蚕断,指不...
    威宸閱讀 241評論 0 0