mysql各個元件之間如何協作,有助於深入理解mysql伺服器。
第一層,服務層:為客戶端提供服務,如連線處理,授權認證、安全等。
第二層,核心層:mysql的核心服務都在這一層。包括查詢解析,分析、優化、快取,提供內建函式、儲存過程、觸發器、檢視。
第三層,儲存引擎:資料的儲存和提取。響應上層伺服器的請求。
一、執行緒處理
①每個客戶端連線(可以是客戶端工具的乙個連線或應用程式建立的乙個連線)都會對應乙個單獨的執行緒。該連線的查詢操作只會在這個單獨的執行緒中執行。該執行緒只能輪流在某個cpu核心或者cpu中執行。
②伺服器端有執行緒快取和執行緒池(mysql5.6才有執行緒池),所以並不需要為每個新的連線建立執行緒。
二、優化與執行
上圖是乙個簡化版的查詢優化。
①客戶端傳送一條查詢給伺服器
②伺服器通過許可權檢查之後(使用者名稱和密碼等),先檢查查詢快取,如果命中了快取,立即返回快取中的資料。否則進入下一階段。
③伺服器端進行sql解析,預處理(詞法、語法分析)再由又花錢生成對應的執行計畫。
④根據優化器生成的執行計畫,呼叫儲存引擎的api來執行查詢。
⑤將結果返回給客戶端。
下圖才是完整版的查詢優化。
MySQL邏輯架構
庖丁解牛之前應該也是對牛的骨架有乙個全面的認知。同樣學習資料庫也從mysql的邏輯架構開始吧。了解mysql邏輯架構有助於深入理解mysql伺服器。最上層的服務並不是mysql所獨有的,大多數基於網路的客戶端 伺服器的工具或者服務都有類似的架構。比如連線處理 授權認證 安全等等。第二層,mysql大...
MySQL邏輯架構
mysql伺服器邏輯架構圖如下 每個虛線框為一層,總共三層。最上層的服務不是mysql特有的,大多數基於網路的客戶端 伺服器的工具或者服務都有類似的架構,為請求做連線處理,授權認證,安全等。第二層架構是大多數mysql的核心服務功能所在層,包括查詢解析,分析,優化,快取以及所有的內建函式,所有跨儲存...
MySQL 邏輯架構
對mysql架構的基本情況掌握了,才能深入學習高階mysql的一些知識。1.連線層 最上層是一些客戶端和連線服務,包含 本地sock通訊和大多數基於客戶端 服務端工具實現的類似於tcp ip的通訊。主要完成一些類似於連線處理 授權認證 及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安全接...