天天看點

mysql的體系結構及sql的執行路徑

一:體系結構

mysql的體系結構及sql的執行路徑

 mysql服務和用戶端的通信是半雙工的

(1) Connectors:不同語言中與SQL的互動

(2)Management Serveices & Utilities: 系統管理和控制工具,例如備份恢複、Mysql複制、叢集等

(3)Connection Pool: 連接配接池(管理緩沖使用者連接配接、使用者名、密碼、權限校驗、線程處理等需要緩存的需求)

(4)SQL Interface: SQL接口:接受使用者的SQL指令,并且傳回使用者需要查詢的結果。比如select from就是調用SQL Interface

(5)Parser: 解析器,SQL指令傳遞到解析器的時候會被解析器驗證和解析。

(6)Optimizer: 查詢優化器,SQL語句在查詢之前會使用查詢優化器對查詢進行優化。

(7) Cache和Buffer(高速緩存區): 查詢緩存,如果查詢緩存有命中的查詢結果,查詢語句就可以直接去查詢緩存中取資料。 通過LRU算法将資料的冷端溢出,未來得及時重新整理到磁盤的資料頁,叫髒頁。

(8)Engine :存儲引擎。存儲引擎是MySql中具體的與檔案打交道的子系統。Mysql的存儲引擎是插拔式的。它根據MySql公司提供的檔案通路層的一個抽象接口來定制一種檔案通路機制(這種通路機制就叫存儲引擎) 。

2.sql的執行順序

mysql的體系結構及sql的執行路徑

 1、用戶端發送一條查詢給伺服器

2、伺服器先檢查查詢緩存,如果命中緩存,則立刻傳回存儲在緩存中的結果。

3、伺服器端進行SQL解析、預處理,再由優化器生成對應的執行計劃。

4、MySQL根據優化器生成的執行計劃,調用存儲引擎的API執行查詢。

5、傳回結果給用戶端