MySQL的基礎架構
MySQL是關係資料庫,關係資料庫,顧名思義,是建立在關係模型基礎上的資料庫,我們現實世界中的各種實體以及實體之間的各種聯繫一般可用關係模型來表示。經過數十年的發展,關係資料庫在理論和工業實踐中都已經發展到很成熟的地步,可以說,目前的絕大部分應用,使用MySQL都有成熟的解決方案。
資料庫的架構一般可以分為應用層,邏輯層,物理層,MySQL也可以這樣理解.
對應於MySQL:
應用層,負責和客戶端,用戶交互,需要和不同的客戶端和中間伺服器進行交互,建立連接,記住連接的狀態,響應它們的請求,返回數據和控制信息(錯誤信息,狀態碼等)。
邏輯層,負責具體的查詢處理、事務管理、存儲管理、恢復管理,以及其他的附加功能。查詢處理器負責查詢解析、執行,當接收到客戶端的Sql查詢,資料庫就分配一個線程來處理它,由查詢處理器生成執行計劃,交由計劃執行器來執行,執行器的部分操作還需要訪問更底層的事務存儲管理器操作數據,事務、存儲管理器主要負責我們的事務管理、並發控制、存儲管理,由我們的事務管理器來確保「ACID」特性,由鎖管理器來控制我們的並發,由日誌管理器來確保我們的數據持久化,存儲管理器一般還包括一個bufer管理器,由它來確定磁碟和內存緩衝之間的數據傳輸。
物理層,實際物理磁碟(存儲)上的資料庫文件.如我們的數據文件、日誌文件等。
以下是MySQL官方文檔的一個基礎架構圖,圖中的Connectors可以理解為各種客戶端端,應用服務,圖中的Connection Pool 可以理解為應用層,負責連接、驗證等功能,圖中的Management Services &nUtilities,SQL Interface,Parse,Optimizer,Cache & Buffers,Pluggable StoragenEngines可以理解為我們資料庫的大腦——邏輯層。圖最下方的Files& Logs可以理解為物理層。
推薦閱讀:
※淺談如何對MySQL內核進行深度優化
※為什麼 PostgreSQL 沒有 MySQL 流行呢?
※為什麼php在向mysql提交數據時變數外要用單引號?
TAG:MySQL |