您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關MySQL數據庫基礎架構是怎么樣的的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1.Application Layer
MySQL的應用層提供各種用戶對數據庫的訪問,也就是為數據庫提供一個訪問接口,讓外部世界與數據連接起來,起一個橋的作用。實際生活中,我們會遇見很多不同功能橋,最初簡陋的獨木橋,現在的過街天橋,跨江的公路橋鐵路橋,它們都各施其職。而在MySQL應用層中也有這么三種用戶:administrators,clients and query users。Administrators可以使用管理型的接口和工具對數據庫進行維護操作;比如:只有管理員用戶才有權使用mysqladmind去關閉數據庫服務,以及對數據庫進行創建和徹底刪除操作,還有一些分析調優的工具isamchk 和myisamchk、對數據庫進行備份恢復操作的mysqldump,也都需要在administrators的權限才能執行。Clients是通過一些接口或是工具利用MySQL APIs對數據庫進行訪問。Query users是通過查詢接口,就是mysql這個命令,去連接數據庫,近而發出一些查詢請求。
2.Logical Layer
邏輯層是MySQL數據庫中核心的功能層,它主要有三大塊:查詢處理(Query Processor)、事務管理(Transaction Management)、恢復管理(Recovery Management)和存儲管理(Storage Management)。
2.1 Query Processor
當用戶希望對底層數據庫進行查看和處理操作,在這期間發生的查詢都會被查詢處理器進行提取并最優化以后執行輸出,接下來我們說說整個的流程。
當用戶出一個請求,查詢處理器(QueryProcessor)會先去判斷請求的類型,也就是前面我們說的,由誰發出的,如果是admin,就由DDL編譯器(DDL Compiler)編譯后,直接由執行引擎(Excution Engine)對底層數據庫進行操作。如果是client,那么,先通過內部DML預編譯器(DDL Precompiler)將用戶的命令轉化成相應的查詢語句,接下來查詢分析器(Query Parser)將語句分解成解析書的結構,以便接下來的組件可以理解,預查詢編譯器(Query Preprocesor)會檢查這個sql語句是否正確有效,然后安全管理器(Security/Integration Manager)將會核實該用戶是否具有對該數據庫有接入訪問的權限,這些都確認之后,會由查詢優化器(Query Optimizer)對sql查詢最優化執行,正因為有了這個機制,執行引擎(Excution Engine)在進行查詢處理時可以盡可能快速地完成,這也是MySQL數據庫性能優于其他的數據庫系統的原因。
2.2 Transaction Management
事務處理分為兩個部分:事務管理器(Transaction Manager)和并發控制器(Concurrency-Control Manager),它們各自發揮著自己的多種職能。TM負責確保事務的自動化地記入日志和執行,還有解析死鎖以及運行COMMIT和ROLLBACK SQL命令;CCM通過鎖定機制確保事務分別獨立的運行。
2.3 Recovery Management
回復管理也有兩部分構成:日志管理器(Log Manger)和恢復管理器(Recovery Manager)。這兩個功能從字面上就很好理解,LM負責紀錄對數據庫的每一項操作,RM則負責將數據庫恢復到最近一次穩定狀態。
2.4 存儲管理(Storage Management)
在存儲管理中,緩沖器管理(Buffer Manager)著內存和虛擬存儲中的緩沖紀錄,同時資源管理器(Resource Manager)和存儲管理器(Storage Manager)也一起協同它完成對物理層數據庫的操作。
3.Physical Layer
物理層其實就是實際數據的存放地,比如:數據文件、日志文件、統計資料、原數據、索引等等。
到此,以上就是整個MySQL數據庫理論性的結構 ,我們已經對MySQL數據庫的內部結構有了一個初步的認識,原來就是這樣。接下來就可以通過一些具體的實踐操作,進一步深入體會這些部分在MySQL數據庫中的功能特性。、
幾點說明:
1. 在功能上,MySQL是基于組件的模塊化設計,但事實上,MySQL既不是嚴格基于組件也非真正的模塊化
2. MySQL的源代碼中混合使用C和C++,而且面向過程的代碼中使用了很多類,這些類僅是負責數據類型的表示,沒有太多體現面向對象編程的思想
3. MySQL系統是用基于函數庫和數據結構的方式整合代碼的
4. MySQL的結構師一個類似與子系統組成的架構,子系統通過緊密和高效的配合,組成一個可靠的數據庫系統
感謝各位的閱讀!關于“MySQL數據庫基礎架構是怎么樣的”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。