mysql學習之-邏輯架構

張衝andy發表於2016-12-14

mysql邏輯架構圖:

 

第一層,服務層(為客戶端服務):為請求做連線處理,授權認證,安全等。

1.  每個連線的查詢都在一個程式中的執行緒完成。

2.  伺服器負責快取執行緒,所以服務層不需要為每個連線新建執行緒。

注:mysql5.5或者更新的版本提供了一個API,支援執行緒池(thread-pooling)外掛,可以使用池中少量執行緒來服務大量的連線。  (類似於oracle中的共享連線方式)

第二層,核心層:查詢解析,分析,最佳化,快取,提供內建函式;儲存過程,觸發器,檢視。

1.最佳化器不關心使用的是什麼儲存引擎,但是儲存引擎對最佳化查詢有影響。

2.在解析查詢之前,伺服器會“詢問”是否進行了查詢快取(只能快取SELECT語句和相應結果)。快取過的直接返回結果,未快取的就需要進行解析查詢,最佳化,重新執行返回結果。

3.解析查詢時會建立一個內部資料結構(解析樹),然後對其進行各種最佳化。

第三層,儲存引擎層,不光做儲存和提取資料,而且針對特殊資料引擎還要做事務處理。

1.伺服器透過API與儲存引擎通訊,介面遮蔽了不同儲存引擎之間的差異,使得上層查詢透明。

2.不同儲存引擎之間不會通訊,只會簡單相應上層服務的請求。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2130532/,如需轉載,請註明出處,否則將追究法律責任。

相關文章