共計 635 個字符,預計需要花費 2 分鐘才能閱讀完成。
今天就跟大家聊聊有關 MySQL 的邏輯架構是怎樣的,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
第一層,服務層 (為客戶端服務): 為請求做連接處理,授權認證,安全等。
1. 每個連接的查詢都在一個進程中的線程完成。
2. 服務器負責緩存線程,所以服務層不需要為每個連接新建線程。
注:mysql5.5 或者更新的版本提供了一個 API, 支持線程池(thread-pooling)插件,可以使用池中少量線程來服務大量的連接。 (類似于 oracle 中的共享連接方式)
第二層,核心層: 查詢解析,分析,優化,緩存,提供內建函數; 存儲過程,觸發器,視圖。
1. 優化器不關心使用的是什么存儲引擎,但是存儲引擎對優化查詢有影響。
2. 在解析查詢之前,服務器會“詢問”是否進行了查詢緩存 (只能緩存 SELECT 語句和相應結果)。緩存過的直接返回結果,未緩存的就需要進行解析查詢,優化,重新執行返回結果。
3. 解析查詢時會創建一個內部數據結構 (解析樹),然后對其進行各種優化。
第三層,存儲引擎層,不光做存儲和提取數據,而且針對特殊數據引擎還要做事務處理。
1. 服務器通過 API 與存儲引擎通信,接口屏蔽了不同存儲引擎之間的差異,使得上層查詢透明。
2. 不同存儲引擎之間不會通信,只會簡單相應上層服務的請求。
看完上述內容,你們對 MySQL 的邏輯架構是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。