當前位置:
首頁 > 知識 > MySQL-體系結構簡介

MySQL-體系結構簡介

MySQL的體系結構主要由四層組成:網路連接層、服務層、儲存引擎層 、文件系統層。

網路連接層

負責管理網路連接、授權認證、安全訪問等等。

在服務端會維護一個線程池來接受客戶端的請求,每個客戶端的請求都對應著一個線程。連接的時候服務端會對客戶端進行登錄認證,認證之後還會驗證客戶端是否有對應的操作許可權。使用線程池的方式,可以減少對線程的創建和銷毀的開銷。

服務層

服務層是MySQL的核心,MySQL的核心服務都是在這層實現的。

主要包含:查詢解析,SQL執行計劃分析,SQL執行計劃優化,查詢緩存,以及跨存儲引擎的功能都在這一層實現:存儲過程,觸發器,視圖等。

查詢緩存:在解析查詢之前,伺服器會檢查查詢緩存,如果能找到對應的查詢,伺服器不必進行查詢解析、優化和執行的過程,直接返回緩存中的結果集。

解析器與預處理器:MySQL會解析查詢,並創建了一個內部數據結構(解析樹)。這個過程解析器主要通過語法規則來驗證和解析。例如:SQL中是否使用了錯誤的關鍵字或者關鍵字的順序是否正確等等;預處理會根據MySQL的規則進一步檢查解析樹是否合法;比如要查詢的數據表和數據列是否存在等。

查詢優化器:優化器將其轉化成查詢計劃。多數情況下,一條查詢可以有很多種執行方式,最後都返回相應的結果。優化器的作用就是找到這其中最好的執行計劃。優化器並不關心使用的什麼存儲引擎,但是存儲引擎對優化查詢是有影響的。優化器要求存儲引擎提供容量或某個具體操作的開銷信息來評估執行時間。

查詢引擎:在完成解析和優化階段以後,MySQL會生成對應的執行計劃,查詢執行引擎根據執行計劃給出的指令調用存儲引擎的介面得出結果。

存儲引擎層

負責MySQL中數據的存儲與提取。

伺服器中的查詢執行引擎通過API與存儲引擎進行通信,通過介面屏蔽了不同存儲引擎之間的差異。儲存引擎是針對錶不是針對庫的。

MySQL採用插件式的存儲引擎。MySQL提供了許多存儲引擎,每種存儲引擎有不同的特點。可以根據不同的業務特點,選擇最適合的存儲引擎。如果對於存儲引擎的性能不滿意,可以通過修改源碼來得到想要達到的性能。

文件系統層

主要是將資料庫的數據存儲在操作系統的文件系統之上,並完成與存儲引擎的交互。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 linux運維菜 的精彩文章:

MySQL-配置節

TAG:linux運維菜 |