MySQL三層邏輯架構

MySQL的存儲引擎架構將查詢處理與數據的存儲/提取相分離。下面是MySQL的邏輯架構圖:
緩存

 

 

  1. 第一層負責鏈接管理、受權認證、安全等等。
    每一個客戶端的鏈接都對應着服務器上的一個線程。服務器上維護了一個線程池,避免爲每一個鏈接都建立銷燬一個線程。當客戶端鏈接到MySQL服務器時,服務器對其進行認證。能夠經過用戶名和密碼的方式進行認證,也能夠經過SSL證書進行認證。登陸認證經過後,服務器還會驗證該客戶端是否有執行某個查詢的權限。安全

  2. 第二層負責解析查詢(編譯SQL),並對其進行優化(如調整表的讀取順序,選擇合適的索引等)。對於SELECT語句,在解析查詢前,服務器會先檢查查詢緩存,若是能在其中找到對應的查詢結果,則無需再進行查詢解析、優化等過程,直接返回查詢結果。存儲過程、觸發器、視圖等都在這一層實現。服務器

  3. 第三層是存儲引擎,存儲引擎負責在MySQL中存儲數據、提取數據、開啓一個事務等等。存儲引擎經過API與上層進行通訊,這些API屏蔽了不一樣存儲引擎之間的差別,使得這些差別對上層查詢過程透明。存儲引擎不會去解析SQL。架構

相關文章
相關標籤/搜索