Mysql的体系结构概览
整個(gè)MySQL Server由以下組成
Connection Pool : 連接池組件
Management Services & Utilities : 管理服務(wù)和工具組件
SQL Interface : SQL接口組件
Parser : 查詢分析器組件
Optimizer : 優(yōu)化器組件
Caches & Buffers : 緩沖池組件
Pluggable Storage Engines : 存儲引擎
File System : 文件系統(tǒng)
1)連接層
最上層是一些客戶端和鏈接服務(wù),包含本地sock 通信和大多數(shù)基于客戶端/服務(wù)端工具實(shí)現(xiàn)的類似于 TCP/IP的通信。主要完成一些類似于連接處理、授權(quán)認(rèn)證、及相關(guān)的安全方案。
在該層上引入了線程池的概念,為通過認(rèn)證安全接入的客戶端提供線程。
同樣在該層上可以實(shí)現(xiàn)基于SSL的安全鏈接。
服務(wù)器也會為安全接入的每個(gè)客戶端驗(yàn)證它所具有的操作權(quán)限。
2)服務(wù)層
第二層架構(gòu)主要完成大多數(shù)的核心服務(wù)功能,如SQL接口,并完成緩存的查詢,SQL的分析和優(yōu)化,部分內(nèi)置函數(shù)的執(zhí)行。
所有跨存儲引擎的功能也在這一層實(shí)現(xiàn),如過程、函數(shù)等。
在該層,服務(wù)器會解析查詢并創(chuàng)建相應(yīng)的內(nèi)部解析樹,并對其完成相應(yīng)的優(yōu)化如確定表的查詢的順序,是否利用索引等,最后生成相應(yīng)的執(zhí)行操作。
如果是select語句,服務(wù)器還會查詢內(nèi)部的緩存,如果緩存空間足夠大,這樣在解決大量讀操作的環(huán)境中能夠很好的提升系統(tǒng)的性能。
3)引擎層
存儲引擎層,存儲引擎真正的負(fù)責(zé)了MySQL中數(shù)據(jù)的存儲和提取,服務(wù)器通過API和存儲引擎進(jìn)行通信。
不同的存儲引擎具有不同的功能,這樣我們可以根據(jù)自己的需要,來選取合適的存儲引擎。
4)存儲層
數(shù)據(jù)存儲層,主要是將數(shù)據(jù)存儲在文件系統(tǒng)之上,并完成與存儲引擎的交互。
和其他數(shù)據(jù)庫相比,MySQL有點(diǎn)與眾不同,它的架構(gòu)可以在多種不同場景中應(yīng)用并發(fā)揮良好作用。
主要體現(xiàn)在存儲引擎上,插件式的存儲引擎架構(gòu),將查詢處理和其他的系統(tǒng)任務(wù)以及數(shù)據(jù)的存儲提取分離。
這種架構(gòu)可以根據(jù)業(yè)務(wù)的需求和實(shí)際需要選擇合適的存儲引擎。
總結(jié)
以上是生活随笔為你收集整理的Mysql的体系结构概览的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 触发器——创建||更新||删除||查看
- 下一篇: 存储引擎——概述|| 各种存储引擎的特性