Mysql的體系結構介紹

mysql的體系結構

參考:

黑馬的mysql高級教程

主要分爲兩個部分:

  • 連接的客戶端,如jdbc、python等
  • mysql server

整體圖:

在這裏插入圖片描述
這裏主要看的是mysql server:

  • Connection Pool : 連接池組件
  • Management Services & Utilities : 管理服務和工具組件
  • SQL Interface : SQL接口組件
  • Parser : 查詢分析器組件
  • Optimizer : 優化器組件
  • Caches & Buffers : 緩衝池組件
  • Pluggable Storage Engines : 存儲引擎(高版本mysql默認的是innoDB)
  • File System : 文件系統

各個組件的功能介紹

  1. 連接層:

最上層是一些客戶端和鏈接服務,包含本地sock 通信和大多數基於客戶端/服務端工具實現的類似於 TCP/IP的通信。主要完成一些類似於連接處理、授權認證、及相關的安全方案。在該層上引入了線程池的概念,爲通過認證安全接入的客戶端提供線程。同樣在該層上可以實現基於SSL的安全鏈接。服務器也會爲安全接入的每個客戶端驗證它所具有的操作權限。
== 如:java裏面通過JDBC連接,需要配置四件套信息,便可以訪問並操作數據庫

  1. 服務層:

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

  1. 引擎層:

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

  1. 存儲層:

數據存儲層, 主要是將數據存儲在文件系統之上,並完成與存儲引擎的交互。

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

謝謝大家閱讀!!互相學習!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章