這篇文章給大家分享的是有關(guān)MySQL數(shù)據(jù)庫(kù)基礎(chǔ)架構(gòu)是怎么樣的的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)建站-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站營(yíng)銷推廣,域名注冊(cè),虛擬空間,網(wǎng)站托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)建站。
1.Application Layer
MySQL的應(yīng)用層提供各種用戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),也就是為數(shù)據(jù)庫(kù)提供一個(gè)訪問(wèn)接口,讓外部世界與數(shù)據(jù)連接起來(lái),起一個(gè)橋的作用。實(shí)際生活中,我們會(huì)遇見很多不同功能橋,最初簡(jiǎn)陋的獨(dú)木橋,現(xiàn)在的過(guò)街天橋,跨江的公路橋鐵路橋,它們都各施其職。而在MySQL應(yīng)用層中也有這么三種用戶:administrators,clients and query users。Administrators可以使用管理型的接口和工具對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)操作;比如:只有管理員用戶才有權(quán)使用mysqladmind去關(guān)閉數(shù)據(jù)庫(kù)服務(wù),以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建和徹底刪除操作,還有一些分析調(diào)優(yōu)的工具isamchk 和myisamchk、對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份恢復(fù)操作的mysqldump,也都需要在administrators的權(quán)限才能執(zhí)行。Clients是通過(guò)一些接口或是工具利用MySQL APIs對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。Query users是通過(guò)查詢接口,就是mysql這個(gè)命令,去連接數(shù)據(jù)庫(kù),近而發(fā)出一些查詢請(qǐng)求。
2.Logical Layer
邏輯層是MySQL數(shù)據(jù)庫(kù)中核心的功能層,它主要有三大塊:查詢處理(Query Processor)、事務(wù)管理(Transaction Management)、恢復(fù)管理(Recovery Management)和存儲(chǔ)管理(Storage Management)。
2.1 Query Processor
當(dāng)用戶希望對(duì)底層數(shù)據(jù)庫(kù)進(jìn)行查看和處理操作,在這期間發(fā)生的查詢都會(huì)被查詢處理器進(jìn)行提取并最優(yōu)化以后執(zhí)行輸出,接下來(lái)我們說(shuō)說(shuō)整個(gè)的流程。
當(dāng)用戶出一個(gè)請(qǐng)求,查詢處理器(QueryProcessor)會(huì)先去判斷請(qǐng)求的類型,也就是前面我們說(shuō)的,由誰(shuí)發(fā)出的,如果是admin,就由DDL編譯器(DDL Compiler)編譯后,直接由執(zhí)行引擎(Excution Engine)對(duì)底層數(shù)據(jù)庫(kù)進(jìn)行操作。如果是client,那么,先通過(guò)內(nèi)部DML預(yù)編譯器(DDL Precompiler)將用戶的命令轉(zhuǎn)化成相應(yīng)的查詢語(yǔ)句,接下來(lái)查詢分析器(Query Parser)將語(yǔ)句分解成解析書的結(jié)構(gòu),以便接下來(lái)的組件可以理解,預(yù)查詢編譯器(Query Preprocesor)會(huì)檢查這個(gè)sql語(yǔ)句是否正確有效,然后安全管理器(Security/Integration Manager)將會(huì)核實(shí)該用戶是否具有對(duì)該數(shù)據(jù)庫(kù)有接入訪問(wèn)的權(quán)限,這些都確認(rèn)之后,會(huì)由查詢優(yōu)化器(Query Optimizer)對(duì)sql查詢最優(yōu)化執(zhí)行,正因?yàn)橛辛诉@個(gè)機(jī)制,執(zhí)行引擎(Excution Engine)在進(jìn)行查詢處理時(shí)可以盡可能快速地完成,這也是MySQL數(shù)據(jù)庫(kù)性能優(yōu)于其他的數(shù)據(jù)庫(kù)系統(tǒng)的原因。
2.2 Transaction Management
事務(wù)處理分為兩個(gè)部分:事務(wù)管理器(Transaction Manager)和并發(fā)控制器(Concurrency-Control Manager),它們各自發(fā)揮著自己的多種職能。TM負(fù)責(zé)確保事務(wù)的自動(dòng)化地記入日志和執(zhí)行,還有解析死鎖以及運(yùn)行COMMIT和ROLLBACK SQL命令;CCM通過(guò)鎖定機(jī)制確保事務(wù)分別獨(dú)立的運(yùn)行。
2.3 Recovery Management
回復(fù)管理也有兩部分構(gòu)成:日志管理器(Log Manger)和恢復(fù)管理器(Recovery Manager)。這兩個(gè)功能從字面上就很好理解,LM負(fù)責(zé)紀(jì)錄對(duì)數(shù)據(jù)庫(kù)的每一項(xiàng)操作,RM則負(fù)責(zé)將數(shù)據(jù)庫(kù)恢復(fù)到最近一次穩(wěn)定狀態(tài)。
2.4 存儲(chǔ)管理(Storage Management)
在存儲(chǔ)管理中,緩沖器管理(Buffer Manager)著內(nèi)存和虛擬存儲(chǔ)中的緩沖紀(jì)錄,同時(shí)資源管理器(Resource Manager)和存儲(chǔ)管理器(Storage Manager)也一起協(xié)同它完成對(duì)物理層數(shù)據(jù)庫(kù)的操作。
3.Physical Layer
物理層其實(shí)就是實(shí)際數(shù)據(jù)的存放地,比如:數(shù)據(jù)文件、日志文件、統(tǒng)計(jì)資料、原數(shù)據(jù)、索引等等。
到此,以上就是整個(gè)MySQL數(shù)據(jù)庫(kù)理論性的結(jié)構(gòu) ,我們已經(jīng)對(duì)MySQL數(shù)據(jù)庫(kù)的內(nèi)部結(jié)構(gòu)有了一個(gè)初步的認(rèn)識(shí),原來(lái)就是這樣。接下來(lái)就可以通過(guò)一些具體的實(shí)踐操作,進(jìn)一步深入體會(huì)這些部分在MySQL數(shù)據(jù)庫(kù)中的功能特性。、
幾點(diǎn)說(shuō)明:
1. 在功能上,MySQL是基于組件的模塊化設(shè)計(jì),但事實(shí)上,MySQL既不是嚴(yán)格基于組件也非真正的模塊化
2. MySQL的源代碼中混合使用C和C++,而且面向過(guò)程的代碼中使用了很多類,這些類僅是負(fù)責(zé)數(shù)據(jù)類型的表示,沒(méi)有太多體現(xiàn)面向?qū)ο缶幊痰乃枷?/p>
3. MySQL系統(tǒng)是用基于函數(shù)庫(kù)和數(shù)據(jù)結(jié)構(gòu)的方式整合代碼的
4. MySQL的結(jié)構(gòu)師一個(gè)類似與子系統(tǒng)組成的架構(gòu),子系統(tǒng)通過(guò)緊密和高效的配合,組成一個(gè)可靠的數(shù)據(jù)庫(kù)系統(tǒng)
感謝各位的閱讀!關(guān)于“MySQL數(shù)據(jù)庫(kù)基礎(chǔ)架構(gòu)是怎么樣的”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站欄目:MySQL數(shù)據(jù)庫(kù)基礎(chǔ)架構(gòu)是怎么樣的
文章出自:http://m.2m8n56k.cn/article40/jcgsho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、微信小程序、全網(wǎng)營(yíng)銷推廣、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)