MySQL邏輯架構

2021-10-23 02:10:01 字數 595 閱讀 5181

說起mysql的查詢優化,相信大家收藏了一堆奇技淫巧:不能使用select *、不使用null欄位、合理建立索引、為字段選擇合適的資料型別… 你是否真的理解這些優化技巧?是否理解其背後的工作原理?在實際場景下效能真有提公升嗎?我想未必。因而理解這些優化建議背後的原理就尤為重要,希望本文能讓你重新審視這些優化建議,並在實際業務場景下合理的運用。

如果能在頭腦中構建一幅mysql各元件之間如何協同工作的架構圖,有助於深入理解mysql伺服器。下圖展示了mysql的邏輯架構圖。

mysql邏輯架構整體分為三層,最上層為客戶端層,並非mysql所獨有,諸如:連線處理、授權認證、安全等功能均在這一層處理。

mysql大多數核心服務均在中間這一層,包括查詢解析、分析、優化、快取、內建函式(比如:時間、數學、加密等函式)。所有的跨儲存引擎的功能也在這一層實現:儲存過程、觸發器、檢視等。

最下層為儲存引擎,其負責mysql中的資料儲存和提取。和linux下的檔案系統類似,每種儲存引擎都有其優勢和劣勢。中間的服務層通過api與儲存引擎通訊,這些api介面遮蔽了不同儲存引擎間的差異。

MySQL邏輯架構

庖丁解牛之前應該也是對牛的骨架有乙個全面的認知。同樣學習資料庫也從mysql的邏輯架構開始吧。了解mysql邏輯架構有助於深入理解mysql伺服器。最上層的服務並不是mysql所獨有的,大多數基於網路的客戶端 伺服器的工具或者服務都有類似的架構。比如連線處理 授權認證 安全等等。第二層,mysql大...

MySQL邏輯架構

mysql伺服器邏輯架構圖如下 每個虛線框為一層,總共三層。最上層的服務不是mysql特有的,大多數基於網路的客戶端 伺服器的工具或者服務都有類似的架構,為請求做連線處理,授權認證,安全等。第二層架構是大多數mysql的核心服務功能所在層,包括查詢解析,分析,優化,快取以及所有的內建函式,所有跨儲存...

MySQL 邏輯架構

對mysql架構的基本情況掌握了,才能深入學習高階mysql的一些知識。1.連線層 最上層是一些客戶端和連線服務,包含 本地sock通訊和大多數基於客戶端 服務端工具實現的類似於tcp ip的通訊。主要完成一些類似於連線處理 授權認證 及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安全接...