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 ,如需轉載請自行聯系原作者