溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數(shù)據(jù)庫基礎架構是怎么樣的

發(fā)布時間:2022-01-15 10:36:05 來源:億速云 閱讀:157 作者:小新 欄目:數(shù)據(jù)庫

這篇文章給大家分享的是有關MySQL數(shù)據(jù)庫基礎架構是怎么樣的的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1.Application Layer

MySQL的應用層提供各種用戶對數(shù)據(jù)庫的訪問,也就是為數(shù)據(jù)庫提供一個訪問接口,讓外部世界與數(shù)據(jù)連接起來,起一個橋的作用。實際生活中,我們會遇見很多不同功能橋,最初簡陋的獨木橋,現(xiàn)在的過街天橋,跨江的公路橋鐵路橋,它們都各施其職。而在MySQL應用層中也有這么三種用戶:administrators,clients and query users。Administrators可以使用管理型的接口和工具對數(shù)據(jù)庫進行維護操作;比如:只有管理員用戶才有權使用mysqladmind去關閉數(shù)據(jù)庫服務,以及對數(shù)據(jù)庫進行創(chuàng)建和徹底刪除操作,還有一些分析調優(yōu)的工具isamchk 和myisamchk、對數(shù)據(jù)庫進行備份恢復操作的mysqldump,也都需要在administrators的權限才能執(zhí)行。Clients是通過一些接口或是工具利用MySQL APIs對數(shù)據(jù)庫進行訪問。Query users是通過查詢接口,就是mysql這個命令,去連接數(shù)據(jù)庫,近而發(fā)出一些查詢請求。

2.Logical Layer

邏輯層是MySQL數(shù)據(jù)庫中核心的功能層,它主要有三大塊:查詢處理(Query Processor)、事務管理(Transaction Management)、恢復管理(Recovery Management)和存儲管理(Storage Management)。

    2.1 Query Processor

當用戶希望對底層數(shù)據(jù)庫進行查看和處理操作,在這期間發(fā)生的查詢都會被查詢處理器進行提取并最優(yōu)化以后執(zhí)行輸出,接下來我們說說整個的流程。

當用戶出一個請求,查詢處理器(QueryProcessor)會先去判斷請求的類型,也就是前面我們說的,由誰發(fā)出的,如果是admin,就由DDL編譯器(DDL Compiler)編譯后,直接由執(zhí)行引擎(Excution Engine)對底層數(shù)據(jù)庫進行操作。如果是client,那么,先通過內部DML預編譯器(DDL Precompiler)將用戶的命令轉化成相應的查詢語句,接下來查詢分析器(Query Parser)將語句分解成解析書的結構,以便接下來的組件可以理解,預查詢編譯器(Query Preprocesor)會檢查這個sql語句是否正確有效,然后安全管理器(Security/Integration Manager)將會核實該用戶是否具有對該數(shù)據(jù)庫有接入訪問的權限,這些都確認之后,會由查詢優(yōu)化器(Query Optimizer)對sql查詢最優(yōu)化執(zhí)行,正因為有了這個機制,執(zhí)行引擎(Excution Engine)在進行查詢處理時可以盡可能快速地完成,這也是MySQL數(shù)據(jù)庫性能優(yōu)于其他的數(shù)據(jù)庫系統(tǒng)的原因。

    2.2 Transaction Management

事務處理分為兩個部分:事務管理器(Transaction Manager)和并發(fā)控制器(Concurrency-Control Manager),它們各自發(fā)揮著自己的多種職能。TM負責確保事務的自動化地記入日志和執(zhí)行,還有解析死鎖以及運行COMMIT和ROLLBACK SQL命令;CCM通過鎖定機制確保事務分別獨立的運行。

    2.3 Recovery Management

回復管理也有兩部分構成:日志管理器(Log Manger)和恢復管理器(Recovery Manager)。這兩個功能從字面上就很好理解,LM負責紀錄對數(shù)據(jù)庫的每一項操作,RM則負責將數(shù)據(jù)庫恢復到最近一次穩(wěn)定狀態(tài)。

   2.4 存儲管理(Storage Management)

在存儲管理中,緩沖器管理(Buffer Manager)著內存和虛擬存儲中的緩沖紀錄,同時資源管理器(Resource Manager)和存儲管理器(Storage Manager)也一起協(xié)同它完成對物理層數(shù)據(jù)庫的操作。

3.Physical Layer

 物理層其實就是實際數(shù)據(jù)的存放地,比如:數(shù)據(jù)文件、日志文件、統(tǒng)計資料、原數(shù)據(jù)、索引等等。

到此,以上就是整個MySQL數(shù)據(jù)庫理論性的結構 ,我們已經對MySQL數(shù)據(jù)庫的內部結構有了一個初步的認識,原來就是這樣。接下來就可以通過一些具體的實踐操作,進一步深入體會這些部分在MySQL數(shù)據(jù)庫中的功能特性。、

幾點說明:

1. 在功能上,MySQL是基于組件的模塊化設計,但事實上,MySQL既不是嚴格基于組件也非真正的模塊化

2. MySQL的源代碼中混合使用C和C++,而且面向過程的代碼中使用了很多類,這些類僅是負責數(shù)據(jù)類型的表示,沒有太多體現(xiàn)面向對象編程的思想

3. MySQL系統(tǒng)是用基于函數(shù)庫和數(shù)據(jù)結構的方式整合代碼的

4. MySQL的結構師一個類似與子系統(tǒng)組成的架構,子系統(tǒng)通過緊密和高效的配合,組成一個可靠的數(shù)據(jù)庫系統(tǒng)

感謝各位的閱讀!關于“MySQL數(shù)據(jù)庫基礎架構是怎么樣的”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

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

AI