天天看點

mysql學習之-邏輯架構

mysql邏輯架構圖:

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

1.  每個連接配接的查詢都在一個程序中的線程完成。

2.  伺服器負責緩存線程,是以服務層不需要為每個連接配接建立線程。

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

第二層,核心層:查詢解析,分析,優化,緩存,提供内建函數;存儲過程,觸發器,視圖。

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

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

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

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

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

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

本文轉自 張沖andy 部落格園部落格,原文連結:http://www.cnblogs.com/andy6/p/6178977.html   ,如需轉載請自行聯系原作者