【MySQL】邏輯架構與存儲引擎

MySQL邏輯架構圖

可以很容易的看出 MySQL 的邏輯架構圖類似於分層架構的體系,所有技術都可以橫向對比,我們可以將 MySQL 邏輯架構圖類比成開發時的三層架構,從上至下。

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

  1. 連接層
    提供了非常多的 API 供操作人員調用,其中就有我們熟悉的 JDBC。主要完成一些類似於連接處理、授權認證等相關的安全方案。在該層上還引入了線程池的概念,爲通過認證安全接入的客戶端提供線程。
  2. 服務層
    第二層是 MySQL 的核心服務,例如 SQL 接口、SQL 優化分析、解析器、緩存等。在該層中,將 sql 語句拆分重組優化成執行速度快的 sql。並且通過 select、insert 等關鍵字快速定位 sql 功能,提升系統性能。
  3. 數據存儲引擎層
    負責 MySQL 中數據的存儲和提取,服務器通過 API 與存儲引擎進行通信,可以看出該層有近10種存儲引擎,其中最爲常見和使用的就是 InnoDB、MyISAM。MySQL 可以在不用應用場景下切換使用存儲引擎,提升效率。
  4. 文件存儲層
    將數據存儲在設備的文件系統上,完成與存儲引擎的交互。

MySQL存儲引擎

常用的存儲引擎爲 MyISAM 和 InnoDB,介紹一下兩種存儲引擎的區別。

對比 MyISAM InnoDB
主外鍵 不支持 支持
事務 不支持 支持
行表鎖 表鎖,即使操作一條記錄也會鎖住整個表,不適合高併發操作 行鎖,操作時只鎖某一行,不對其他行有影響,適合高併發的操作
緩存 只緩存索引,不緩存真實數據 不僅緩存索引還要緩存真實數據,對內存要求較高,而且內存大小對性能有確定性的影響
表空間
關注點 性能 事務
默認安裝 Yes Yes
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章