首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 存儲引擎架構解析:Server 層與 Engine 層分工、插件式設計

     編輯:MySQL 綜合教學

MySQL 存儲引擎架構解析:Server 層與 Engine 層分工、插件式設計

MySQL 架構分為兩層:Server 層(連接池、SQL 介面、解析器、優化器、快取)負責與客戶端交互、語句解析優化;Storage Engine 層(InnoDB、MyISAM、Memory 等)負責實際數據存取、索引維護、鎖控制、事務管理。插件式設計讓引擎可熱插拔。

Server 層核心組件

  1. Connection Pool:管理客戶端連接、認證、線程複用。
  2. SQL Interface:接收 SQL、返回結果集。
  3. Parser:詞法/語法分析 → AST(抽象語法樹)。
  4. Optimizer:基於成本模型選擇執行計劃(索引選擇、Join 順序、常數折疊等)。
  5. Cache & Buffer:Query Cache(8.0 移除)、Table Open Cache、Key Buffer(MyISAM)、InnoDB Buffer Pool(由引擎自管)。

Engine 層職責

  • 數據文件組織(.ibd、.MYD/.MYI)
  • 索引結構(B+Tree、Hash、Fulltext、Spatial)
  • 並發控制(行鎖/表鎖、MVCC、死鎖檢測)
  • 事務管理(Redo/Undo Log、兩階段提交、隔離級別)
  • 崩潰恢復(Checkpoint、Doublewrite Buffer)

插件式優勢

  • INSTALL PLUGIN / UNINSTALL PLUGIN 動態加載卸載。
  • 同一 Server 支援多引擎共存,建表時 ENGINE=InnoDB 指定。
  • 第三方可開發專用引擎(如 TokuDB、RocksDB、Spider)。

圖示架構

MySQL 架構分層圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved