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