mysql架構介紹 Mysql邏輯架構介紹

2021-10-17 22:57:13 字數 1702 閱讀 2874

總體概覽:

和其它資料庫相比,mysql有點與眾不同,它的架構可以在多種不同場景中應用並發揮良好作用。主要體現在儲存引擎的架構上,

外掛程式式的儲存引擎架構將查詢處理和其它的系統任務以及資料的儲存提取相分離。這種架構可以根據業務的需求和實際需要選擇合適的儲存引擎。

1.連線層

最上層是一些客戶端和連線服務,包含本地sock通訊和大多數基於客戶端/服務端工具實現的類似於tcp/ip的通訊。主要完成一些類似於連線處理、授權認證、及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安全接入的客戶端提供執行緒。同樣在該層上可以實現基於ssl的安全鏈結。伺服器也會為安全接入的每個客戶端驗證它所具有的操作許可權。

2.服務層

2.1 management serveices & utilities: 系統管理和控制工具

2.2 sql inte***ce: sql介面

接受使用者的sql命令,並且返回使用者需要查詢的結果。比如select from就是呼叫sql inte***ce

2.3 parser: 解析器

sql命令傳遞到解析器的時候會被解析器驗證和解析。

2.4 optimizer: 查詢優化器。

sql語句在查詢之前會使用查詢優化器對查詢進行優化。

用乙個例子就可以理解: select uid,name from user where gender= 1;

優化器來決定先投影還是先過濾。

2.5 cache和buffer: 查詢快取。

如果查詢快取有命中的查詢結果,查詢語句就可以直接去查詢快取中取資料。

這個快取機制是由一系列小快取組成的。比如表快取,記錄快取,key快取,許可權快取等

快取是負責讀,緩衝負責寫。

3.引擎層

儲存引擎層,儲存引擎真正的負責了mysql中資料的儲存和提取,伺服器通過api與儲存引擎進行通訊。不同的儲存引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取。後面介紹myisam和innodb

4.儲存層

資料儲存層,主要是將資料儲存在執行於裸裝置的檔案系統之上,並完成與儲存引擎的互動。

查詢說明:

首先,mysql的查詢流程大致是:

mysql客戶端通過協議與mysql伺服器建連線,傳送查詢語句,先檢查查詢快取,如果命中(一模一樣的sql才能命中),直接返回結果,否則進行語句解析,也就是說,在解析查詢之前,伺服器會先訪問查詢快取(query cache)——它儲存select語句以及相應的查詢結果集。如果某個查詢結果已經位於快取中,伺服器就不會再對查詢進行解析、優化、以及執行。它僅僅將快取中的結果返回給使用者即可,這將大大提高系統的效能。

語法解析器和預處理:首先mysql通過關鍵字將sql語句進行解析,並生成一顆對應的「解析樹」。mysql解析器將使用mysql語法規則驗證和解析查詢;預處理器則根據一些mysql規則進一步檢查解析數是否合法。

查詢優化器當解析樹被認為是合法的了,並且由優化器將其轉化成執行計畫。一條查詢可以有很多種執行方式,最後都返回相同的結果。優化器的作用就是找到這其中最好的執行計畫。。

然後,mysql預設使用的btree索引,並且乙個大致方向是:無論怎麼折騰sql,至少在目前來說,mysql最多只用到表中的乙個索引。

MySQL學習(一) MySQL架構介紹

1 mysql伺服器由sql層和儲存引擎層構成 2 mysql各個模組的特點 mysql 的物理檔案包括日誌檔案 資料檔案和其他檔案 1 日誌檔案 二進位制日誌 binlog 記錄了mysql所有修改資料庫的操作,然後以二進位制的形式記錄在日誌檔案中,其中還包括每條語句所執行的時間和所消耗的資源,以...

mysql邏輯架構介紹

和其他資料庫相比,mysql有點與眾不同,它的架構可以在多種不同場景中應用並發揮良好作用。主要體現在儲存引擎的架構上,場景式的儲存引擎架構將查詢處理和其它系統任務以及資料的儲存提取相分離。這種架構可以根據業務的需求和實際需要選擇合適的儲存引擎。常用資料庫引擎 myisam,innodb 最上層是一些...

MySQL高階知識 MySQL的架構介紹

目錄2 mysql linux版的安裝 3 mysql配置檔案 4 mysql邏輯架構介紹 5 mysql儲存引擎 1 mysql 簡介 概述高階mysql涉及到知識 2 mysql linux版的安裝 檢查當前系統是否安裝過mysql 安裝mysql服務端 注意提示 安裝mysql客戶端 檢視my...