成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

邏輯架構(gòu)圖解和InnoDB存儲引擎詳解

存儲 存儲軟件 其他數(shù)據(jù)庫
MySQL數(shù)據(jù)庫存儲引擎是數(shù)據(jù)庫底層的架構(gòu)組件,數(shù)據(jù)庫管理系統(tǒng)使用數(shù)據(jù)引擎進(jìn)行創(chuàng)建、查詢、更新和刪除數(shù)據(jù)操作。不同的存儲引擎提供不同的存儲機(jī)制、索引技巧、鎖定水平等功能,使用不同的存儲引擎還具有不同的特點功能,以滿足不同場景下的業(yè)務(wù)需求。

[[321770]]

一、MySQL邏輯架構(gòu)

1、邏輯架構(gòu)圖

基于下面的邏輯架構(gòu)圖,可以大致熟悉MySQL各個架構(gòu)組件之間的協(xié)同工作關(guān)系。

 

MySQL基礎(chǔ)篇:邏輯架構(gòu)圖解和InnoDB存儲引擎詳解

 

很經(jīng)典的C/S架構(gòu)風(fēng)格,即客戶端/服務(wù)端模式。

2、分層描述

  • 客戶端連接

通常會進(jìn)行連接池管理,連接用戶權(quán)限認(rèn)證,安全管理等操作。

可以通過如下命令查看連接配置信息:SHOW VARIABLES LIKE '%connect%';可以看到最大連接和每個連接占用的內(nèi)存等相關(guān)配置。

  • 核心功能

第二層架構(gòu)封裝MySQL一系列核心操作,查詢解析、優(yōu)化、緩存、內(nèi)置函數(shù)、觸發(fā)器、視圖等,跨存儲引擎的功能都在這一層實現(xiàn)。

  • 存儲引擎

MySQL的最底層封裝,也是最核心的功能,不同的存儲引擎有不同的特點功能,共同點是處理數(shù)據(jù)的存儲和提取。

二、概念簡介

1、存儲引擎

MySQL數(shù)據(jù)庫存儲引擎是數(shù)據(jù)庫底層的架構(gòu)組件,數(shù)據(jù)庫管理系統(tǒng)使用數(shù)據(jù)引擎進(jìn)行創(chuàng)建、查詢、更新和刪除數(shù)據(jù)操作。不同的存儲引擎提供不同的存儲機(jī)制、索引技巧、鎖定水平等功能,使用不同的存儲引擎還具有不同的特點功能,以滿足不同場景下的業(yè)務(wù)需求。

2、支持關(guān)系

可以通過下面兩個命令查看MySQL當(dāng)前版本,和對存儲引擎的支持情況。

SELECT VERSION() ; SHOW ENGINES ;

可以看出本地環(huán)境是MySQL5.7,支持如下幾種存儲引擎:

 

MySQL基礎(chǔ)篇:邏輯架構(gòu)圖解和InnoDB存儲引擎詳解

 

該版本下默認(rèn)的存儲引擎是:InnoDB,功能最為豐富和強(qiáng)大,支持事務(wù),分布式事務(wù),事務(wù)保存點。

三、常見存儲引擎

1、InnoDB引擎

(1)、基本描述

InnoDB引擎是MySQL默認(rèn)的事務(wù)型引擎,使用非常廣泛,極擅長處理短期事務(wù),具有自動崩潰恢復(fù)的特性,在日常開發(fā)中,一般都要求使用該引擎。

(2)、架構(gòu)圖解

  • InnoDB架構(gòu)圖

該圖片來自MySQL官網(wǎng)文檔。

 

MySQL基礎(chǔ)篇:邏輯架構(gòu)圖解和InnoDB存儲引擎詳解

 

整體分三層:內(nèi)存結(jié)構(gòu),Cache,磁盤結(jié)構(gòu)。

  • 內(nèi)存結(jié)構(gòu)

內(nèi)存結(jié)構(gòu)又包括四大組件

Buffer Pool:緩沖池:是主內(nèi)存中的一個區(qū)域,在InnoDB訪問表和索引數(shù)據(jù)時會在其中進(jìn)行高速緩存,大量減少磁盤IO操作,提升效率。

Change Buffer:寫緩沖區(qū):避免每次增刪改都進(jìn)行IO操作,提升性能。

Adaptive Hash Index:自適應(yīng)哈希索引:使用索引關(guān)鍵字的前綴構(gòu)建哈希索引,提升查詢速度。

Log Buffer:日志緩沖區(qū):保存要寫入磁盤上的日志文件的數(shù)據(jù),緩沖區(qū)的內(nèi)容定期刷新到磁盤。

  • 磁盤結(jié)構(gòu)

Tables:數(shù)據(jù)表的物理結(jié)構(gòu)。

Indexes:索引的物理結(jié)構(gòu)。

Tablespaces:表空間,數(shù)據(jù)存儲區(qū)域。

Data Dictionary:數(shù)據(jù)字典,存儲元數(shù)據(jù)信息的表,例如表的描述,結(jié)構(gòu),索引等。

Doublewrite Buffer:位于系統(tǒng)表空間的一個存儲區(qū)域,InnoDB在BufferPool中刷新頁面時,會將數(shù)據(jù)頁寫入該緩沖區(qū)后才會寫入磁盤。

Redo Log:記錄DML操作的日志,用來崩潰后的數(shù)據(jù)恢復(fù)。

Undo Logs:數(shù)據(jù)更改前的快照,可以用來回滾數(shù)據(jù)。

(3)、特點描述

  • 支持事務(wù)

事務(wù)內(nèi)在執(zhí)行一組SQL語句時,要么全部成功,要么全部失敗。

  • 支持分布式事務(wù)

分布式事務(wù)指即使不同操作位于不同的服務(wù)應(yīng)用上,仍然需要保證事務(wù)的特性。常見場景:訂單和庫存在不同的服務(wù)中,但卻能保持一致性。

  • 支持行級鎖

加鎖時鎖定一行數(shù)據(jù)的鎖機(jī)制就是行級別鎖定(row-level)。MySQL5.7版本中只有InnoDB引擎支持。鎖定的粒度小,自然支持的并發(fā)就高,鎖定的機(jī)制也隨之變的復(fù)雜。

  • 支持MVCC

多版本并發(fā)控制,通過保存數(shù)據(jù)在某個時間點的快照來實現(xiàn)的。這意味著一個事務(wù)無論運行多長時間,在同一個事務(wù)里能夠看到數(shù)據(jù)一致的視圖。根據(jù)事務(wù)開始的時間不同,同時也意味著在同一個時刻不同事務(wù)看到的相同表里的數(shù)據(jù)可能是不同的。

  • 支持聚簇索引

是一種對磁盤上實際數(shù)據(jù)重新組織以按指定的一個或多個列的值排序。由于聚簇索引的索引頁面指針指向數(shù)據(jù)頁面,所以使用聚簇索引查找數(shù)據(jù)幾乎總是比使用非聚簇索引快。

2、MyISAM引擎

(1)、基礎(chǔ)描述

MySQL5.1和之前版本的默認(rèn)存儲引擎,不支持事務(wù)和行級鎖,自然崩潰之后不能自動恢復(fù)。

(2)、特點描述

  • 鎖表機(jī)制

對整張表加鎖,不針對行加鎖,讀數(shù)據(jù)加共享鎖,寫數(shù)據(jù)加排他鎖。

  • 全文索引

支持全文索引,一種基于分詞創(chuàng)建的索引,可以支持復(fù)雜的檢索查詢。

3、其他引擎

在MySQL的體系中,最常使用的就是InnoDB和MyISAM引擎,其他多樣的存儲引擎可以根據(jù)業(yè)務(wù)需求再去熟悉。

絮叨一句:人生苦短,編程語言更是五馬六路,這點令人煩躁,所以學(xué)習(xí)的時候要挑重點,什么是重點,使用最多的就是重點內(nèi)容。

四、存儲引擎選擇

在公司的開發(fā)規(guī)范中,一般硬性要求使用InnoDB引擎,除非有怪癖的業(yè)務(wù)InnoDB無法支持。

五、源代碼地址

GitHub·地址

https://github.com/cicadasmile/mysql-data-base

GitEE·地址

https://gitee.com/cicadasmile/mysql-data-base

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-01-14 14:25:25

MySQL存儲邏輯架構(gòu)

2018-09-05 13:14:54

MySQLInnoDBMyISAM

2019-06-11 16:11:16

MySQLMyISAMInnoDB

2019-06-04 15:27:49

InnoDB存儲引擎

2009-11-02 16:32:51

龍芯多核處理器

2011-10-11 09:41:22

Hyper-V微軟TechEd

2010-05-21 16:10:28

2009-05-05 10:19:37

存儲引擎InnoDBMyISAM

2018-06-14 10:44:59

MySQLMyISAMInnoDB

2019-11-04 15:57:29

MySQLInnoDB內(nèi)存

2010-05-11 15:06:24

MySQL MyISA

2010-05-21 16:23:52

MySQL MyISA

2009-05-19 09:58:41

MyISAMInnoDB存儲引擎

2011-08-16 16:22:38

MySQL數(shù)據(jù)庫存儲引擎MyISAM

2021-12-14 17:19:15

存儲數(shù)據(jù)

2020-03-17 09:21:20

MariaDBSpider存儲

2024-04-15 10:30:22

MySQL存儲引擎

2010-05-21 15:53:30

2020-06-15 08:54:46

架構(gòu)圖 EA業(yè)務(wù)建模

2020-07-07 07:30:33

技術(shù)IT架構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 五月激情综合 | 日韩欧美精品 | 国产精品久久久久久久久免费相片 | 美女亚洲一区 | 精品国产一区二区三区性色av | 亚洲成在线观看 | 日本一区二区三区免费观看 | 免费在线看a | 中文在线a在线 | 国产色片 | 韩日一区 | 一区二区三区四区不卡 | 国产精品乱码一区二区三区 | 久久久久国产一区二区三区四区 | 91精品国产乱码久久蜜臀 | 成人免费看黄网站在线观看 | 日韩高清国产一区在线 | 99热精品6| 日本一区二区三区视频在线 | 日韩精品在线看 | 天天艹逼网 | 亚洲一区二区三区视频 | 日日夜夜av | 国产高清精品一区二区三区 | 国产一区二区三区网站 | 欧美一区二区 | 国产亚洲网站 | 亚洲高清视频一区二区 | 成人免费精品 | 亚洲电影中文字幕 | 天天干视频 | av在线一区二区三区 | 欧美一区二区综合 | 成人国产在线视频 | 亚洲国产精品久久久久久 | 国产成人精品免费视频大全最热 | 久久久久久久久久久福利观看 | 国产精品久久精品 | 久精品久久| 一区二区三区精品视频 | 澳门永久av免费网站 |