天天看點

Mysql體系結構

6. Mysql體系結構

Mysql體系結構

image-20200616104826352

Connection Pool :  連接配接池元件

Management Services & Utilities :  管理服務和工具元件

SQL Interface : SQL 接口元件

Parser :  查詢分析器元件

Optimizer :  優化器元件

Caches & Buffers :  緩沖池元件

Pluggable Storage Engines :  存儲引擎

File System :  檔案系統

最上層是一些用戶端和連結服務,包含本地sock 通信和大多數基于用戶端/服務端工具實作的類似于 TCP/IP的通信。主要完成一些類似于連接配接處理、授權認證、及相關的安全方案。在該層上引入了線程池的概念,為通過認證安全接入的用戶端提供線程。同樣在該層上可以實作基于SSL的安全連結。伺服器也會為安全接入的每個用戶端驗證它所具有的操作權限。

第二層架構主要完成大多數的核心服務功能,如 SQL接口,并完成緩存的查詢,SQL的分析和優化,部分内置函數的執行。所有跨存儲引擎的功能也在這一層實作,如 過程、函數等。在該層,伺服器會解析查詢并建立相應的内部解析樹,并對其完成相應的優化如确定表的查詢的順序,是否利用索引等, 最後生成相應的執行操作。如果是select語句,伺服器還會查詢内部的緩存,如果緩存空間足夠大,這樣在解決大量讀操作的環境中能夠很好的提升系統的性能。

存儲引擎層, 存儲引擎真正的負責了MySQL中資料的存儲和提取,伺服器通過API和存儲引擎進行通信。不同的存儲引擎具有不同的功能,這樣我們可以根據自己的需要,來選取合适的存儲引擎。

資料存儲層, 主要是将資料存儲在檔案系統之上,并完成與存儲引擎的互動。

和其他資料庫相比,MySQL有點與衆不同,它的架構可以在多種不同場景中應用并發揮良好作用。主要展現在存儲引擎上,插件式的存儲引擎架構,将查詢處理和其他的系統任務以及資料的存儲提取分離。這種架構可以根據業務的需求和實際需要選擇合适的存儲引擎。

上一篇: 依賴注入

繼續閱讀