了解 MySQL 體系架構

mysql視頻教程欄目介紹mysql體系架構

了解 MySQL 體系架構

推薦(免費):mysql視頻教程

MySQL 體系架構

MySQL 體系架構主要分為兩部分:客戶端和服務端

了解 MySQL 體系架構

客戶端

客戶端連接器主要負責一些客戶端的連接,針對不同的編程語言驅動提供連接服務。

服務端

服務層包括:系統管理和控制工具,連接池,SQL接口,解析器,查詢優化器,緩存。

  • 連接池
    負責管理客戶端與服務層數據處理的連接,以及對用戶執行操作權限的校驗。

  • 系統管理和控制工具
    負責備份安全,安全管理,集群管理服務和工具等。

  • SQL接口
    接收客戶端 sql命令 ,返回用戶需要的結果。如:dml,ddl,存儲過程,視圖,觸發器等命令。

  • 解析器
    詞語(關鍵字)分析,語法分析,接收sql 將其解析,生成解析樹,并且語法校驗檢查。

  • 查詢優化器:對生成解析樹后并且通過解析器語法后,由優化器選擇合適的索引,然后生成執行計劃,然后與執行引擎交互。

  • 緩存
    緩存機制是由一系列緩存組合起來的。
    如:表緩存,記錄緩存(sql查詢結果緩存起來,等下一次相同sql查詢,從緩存中返回),
    權限緩存,引擎緩存等。如果緩存命中,會直接從緩存中獲取數據。

  • 存儲引擎層
    負責Mysql 數據的讀取和存取,如 InnoDB,MyISAM等。 可插拔式的,可以更換不同的存儲引擎。

  • 系統文件層
    如日志,數據文件等。

一條SQL的執行流程

了解 MySQL 體系架構

  • 首先客戶端進行連接;
  • 其次在server層的連接管理器中驗證用戶權限等操作;
  • 然后如果是非8.0版本的話會去緩存池中查看當前的sql的緩存,如果有直接返回;
  • 如果緩存中沒有則會由解析器語法語義生成解析樹;
  • 優化器解析生成執行計劃,并且選擇合適的索引;
  • 存儲引擎調用API接口去查詢數據,將查詢到的數據更新緩存cache;
  • 最后返回給客戶端;

存儲引擎層

存儲引擎是 MySQL 中具體與文件打交道的子系統,是基于文件系統抽象出來用于mysql和磁盤文件打交道的一個系統;
常用的存儲引擎, MyISAM、支持事務的 InnoDB;

  • MySQL 5.6 版本之前,默認的存儲引擎都是 MyISAM;
  • 5.6 版本以后默認的存儲引擎就是 InnoDB ;

功能對比

了解 MySQL 體系架構

  • InnoDB 支持 ACID 的事務 4 個特性,而 MyISAM 不支持;

  • InnoDB 支持 4 種事務隔離級別,默認是可重復讀 Repeatable Read 的,MyISAM 不支持;

  • InnoDB 支持 crash 安全恢復,MyISAM 不支持;

  • InnoDB 支持外鍵,MyISAM 不支持;

  • InnoDB 支持行級別的鎖粒度,MyISAM 不支持,只支持表級別的鎖粒度;

  • InnoDB 支持 MVCC,MyISAM 不支持;

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享