二、mysql架構介紹
阿新 • • 發佈:2018-08-10
tcp 函數 isam 操作 權限 數據存儲 select語句 技術分享 info
來張圖:
插件式的存儲引擎架構將查詢處理和其他的系統任務已經數據的存儲提取相分離
第一層:連接層:
最上層是一些客戶端和連接服務,包含本地sock通信和大多數基於客戶端/服務端工具實現的類似tcp/ip的通信。主要完成一些類似於連接處理、授權認證、及相關的安全方案。在該層上引入了線程池的概念,為通過認證安全接入的客戶端提供線程。同樣在該層上可以實現基於SSL的安全鏈接。服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。
第二層:業務邏輯處理層
主要完成大多數的核心服務功能,如sql借口,並完成緩存的查詢,sql的分析和優化及部分內置函數的執行。所有跨存儲引擎的功能也在這一層實現,如過程、函數等。在該層,服務器會解析查詢並創建相應的內部解析樹,並對其完成相應的優化如確定查詢表的順序,是否利用索引等,最後生成相應操作。如果是select語句,服務器還會查詢內部的緩存。如果緩存空間足夠大量讀操作的環境中能夠很好地提升系統的性能。
第三層:可拔插存儲引擎層
存儲引擎層,存儲引擎真正的負責了mysql中數據的存儲和提取,服務器通過API於存儲引擎進行通信。不同的儲存引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取。後面介紹myISAM和InnoDB
第四層:文件存儲層
數據存儲層,主要是將數據存儲在運行於裸設備的文件系統之上,並完成與存儲引擎的交互
存儲引擎介紹---用命令查看:show engines;
show variables likes ‘%storeage_engine%‘
MyISAM和InnoDB區別
二、mysql架構介紹