一、鏈接層:mysql
最上層是一些客戶端和鏈接服務,所包含的服務並非MySQL所獨有的技術。它們都是服務於C/S程序或者是這些程序所須要的 :鏈接處理,身份驗證,安全性等等。sql
二、服務層:緩存
主要完成大多數的核心服務功能,如SQL 接口,並完成緩存的查詢,SQL 的分析和優化及部份內置函數的執行。全部跨存儲引擎的功能也在這一層上實現,如存儲過程、觸發器,視圖等。在該層,服務器會解析並建立相應的內部數據結構(解析樹),並完成相應的優化如重寫查詢、決定表的讀取的順序,選擇合適的索引等,最後生成對應的執行操做。若是是select 語句,服務器還會先檢查查詢緩存(Query Cache),若是可以在其中找到對應的查詢,服務器就沒必要再執行查詢解析、優化和執行整個過程,而是直接返回查詢緩存中的結果集。若是緩存空間足夠大,這樣在解決大量讀操做的環境中可以很好的提高系統的性能。安全
三、引擎層:服務器
在存儲引擎層,存儲引擎真正的負責了MySql 中數據的存儲和提取,服務器經過API 與存儲引擎進行通訊。這些接口屏蔽了不一樣存儲引擎之間的差別,使得這些差別對上層的查詢過程透明。存儲引擎不會去解析SQL(InnoDB是一個例外,它會解析外鍵定義,由於MySQL服務器自己沒有實現該功能),不一樣存儲引擎之間也不會相互通訊,而只是簡單地響應上層服務器的請求。數據結構
四、存儲層:
架構
數據存儲層,主要將數據存儲在運行於裸設備上的文件系統上,並完成與存儲引擎的交互。函數
一、查看當前mysql支持的引擎性能
#查看當前mysql支持的引擎
SHOW ENGINES;
二、查看當前mysql默認的存儲引擎優化
#查看當前mysql默認的存儲引擎 SHOW VARIABLES LIKE '%storage_engine%';
三、InnoDB引擎是mysql5.7的默認引擎,支持事務、行級鎖定和外鍵。還有一個使用率較高的是MyISAM,二者對好比下: