溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql的邏輯架構(gòu)原理

發(fā)布時(shí)間:2021-08-26 14:31:12 來(lái)源:億速云 閱讀:97 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“mysql的邏輯架構(gòu)原理”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“mysql的邏輯架構(gòu)原理”吧!


     

一、籠統(tǒng)的邏輯架構(gòu)

先給出一張邏輯架構(gòu)圖,這張圖是讓你從宏觀的角度來(lái)分析認(rèn)識(shí)一下。

mysql的邏輯架構(gòu)原理

從這張圖你可以獲取到如下的信息:

(1)mysql架構(gòu)大致上可以劃分為四層。

(2)第一層,主要是不同客戶端的連接。

(3)第二層,主要是處理客戶端的連接。

(4)第三層,處理客戶端的sql語(yǔ)句。

(5)第四層,存儲(chǔ)引擎真實(shí)的執(zhí)行sql語(yǔ)句。

現(xiàn)在你已經(jīng)了解了mysql的整體架構(gòu),而且也大致明白了每一層是干嘛的,現(xiàn)在我們把目光逐漸細(xì)化,畢竟上面這張圖還是太籠統(tǒng)。

     

二、細(xì)化的邏輯架構(gòu)圖

看下面這張圖。

mysql的邏輯架構(gòu)原理

這張圖相比較前面那張圖就細(xì)化了一部分,從上到下還是分為了四層,

第一層:在這里我們可以看出,連接的客戶端有很多,PHP、python、jdbc等等都有。

第二層:這一層是鏈接層,對(duì)應(yīng)于第一張圖的連接處理層,主要是處理客戶端的連接,這是因?yàn)榭蛻舳撕芏喾N類很多。

第三層:這一層是服務(wù)層。主要是處理客戶端請(qǐng)求的sql語(yǔ)句,如何處理呢?大致流程就是,先查詢緩存,如果緩存有,那就直接拿出來(lái)返回。如果沒(méi)有那就解析器解析,然后優(yōu)化器優(yōu)化,各個(gè)存儲(chǔ)引擎提供的功能都集中在這一層,如存儲(chǔ)過(guò)程,觸發(fā)器,視圖等。

第四層:這一層是引擎層,在這里我們可以看到有好幾種不同的存儲(chǔ)引擎,比如InnoDB,MyISAM,memory等等。真正負(fù)責(zé)MySQL中數(shù)據(jù)的存儲(chǔ)和提取。

假如說(shuō)我們使用jdbc執(zhí)行一條插入的sql語(yǔ)句,整個(gè)流程是如何執(zhí)行的呢?

首先,jdbc屬于第一層,通過(guò)第二層的連接處理連接到mysql服務(wù)器,接下來(lái),通過(guò)解析器對(duì)sql語(yǔ)句進(jìn)行解析,然后再通過(guò)優(yōu)化器對(duì)sql語(yǔ)句進(jìn)行優(yōu)化,最終調(diào)用第四層的存儲(chǔ)引擎的接口,執(zhí)行插入語(yǔ)句,將數(shù)據(jù)插入到文件或者是其他文件系統(tǒng)上。

是不是很簡(jiǎn)單。通常在學(xué)習(xí)mysql的時(shí)候,老師都會(huì)介紹到存儲(chǔ)引擎。那時(shí)候可能你還沒(méi)有注意到他的重要性,現(xiàn)在相信你應(yīng)該體會(huì)到了。也就是說(shuō)服務(wù)層的那些功能,都是由存儲(chǔ)引擎提供的。不同的存儲(chǔ)引擎提供的可能是不一樣的。如何去比較這些存儲(chǔ)引擎呢?我們列了一些指標(biāo)去對(duì)比一下:

功能MylSAMMEMORYInnoDBArchive
存儲(chǔ)限制256TBRAM64TBNone
支持事務(wù)NoNoYesNo
支持全文索引YesNoNoNo
支持樹索引YesYesYesNo
支持哈希索引NoYesNoNo
支持?jǐn)?shù)據(jù)緩存NoN/AYesNo
支持外鍵NoNoYesNo

對(duì)于mysql數(shù)據(jù)庫(kù)來(lái)說(shuō),默認(rèn)的就是InnoDB,它不能支持哈希索引還有全文索引。因此如果有一天你不喜歡它了也可以去更換,語(yǔ)句就是SET default_storage_engine=< 存儲(chǔ)引擎名 >。


感謝各位的閱讀,以上就是“mysql的邏輯架構(gòu)原理”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)mysql的邏輯架構(gòu)原理這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI