Mysql逻辑架构介绍
一、整體架構(gòu)圖
MySql和其它數(shù)據(jù)庫(kù)相比,它的優(yōu)勢(shì)在于它的架構(gòu)可以在多種不同場(chǎng)景中應(yīng)用并且發(fā)揮良好。
這一點(diǎn)主要體現(xiàn)在引擎層上,MySql的引擎是可拔插式的,業(yè)務(wù)處理和引擎是分離的,因此可以根據(jù)不同的業(yè)務(wù)需求選擇不同的引擎來(lái)進(jìn)行處理,甚至現(xiàn)有的引擎都不符合你的需求,你可以定制MySql引擎。
二、架構(gòu)各層介紹
2.1、連接層
主要是完成一些類似于連接處理、授權(quán)認(rèn)證、及相關(guān)的安全方案等處理,包含本地 sock 通信和大多數(shù)基于客戶端/服務(wù)端工具實(shí)現(xiàn)的類似于 tcp/ip 的 通信。
線程池的概念就是為通過(guò)安全認(rèn)證接入的客戶端提供線程。
2.2、服務(wù)層
服務(wù)層平常也稱之為邏輯處理層。服務(wù)層主要包含以下幾點(diǎn):
| Management Serveices & Utilities | 系統(tǒng)管理和控制工具 |
| SQL Interface | SQL 接口。接受用戶的 SQL 命令,并且返回用戶需要查詢的結(jié)果。比如 select from 就是調(diào)用 SQL Interface。 |
| Parser | SQL 解析器。SQL 命令傳遞到解析器的時(shí)候會(huì)被解析器驗(yàn)證和解析。 |
| Optimizer | SQL 查詢優(yōu)化器。SQL 語(yǔ)句在查詢之前會(huì)使用查詢優(yōu)化器對(duì)查詢進(jìn)行優(yōu)化,比如有 where 條件時(shí),優(yōu)化器來(lái)決定先投影還是先過(guò)濾。 |
| Cache & Buffer | SQL 查詢緩存。如果查詢緩存有命中的查詢結(jié)果,查詢語(yǔ)句就可以直接去查詢緩存中取 數(shù)據(jù)。這個(gè)緩存機(jī)制是由一系列小緩存組成的。比如表緩存,記錄緩存,key 緩存, 權(quán)限緩存等 |
2.3、引擎層
存儲(chǔ)引擎層,存儲(chǔ)引擎真正的負(fù)責(zé)了 MySQL 中數(shù)據(jù)的存儲(chǔ)和提取,服務(wù)器通過(guò) API 與存儲(chǔ)引擎進(jìn)行通信。因?yàn)镸ySql的引擎是可拔插式的,我們?cè)谑褂脮r(shí)可根據(jù)不同的業(yè)務(wù)場(chǎng)景可選擇不同的引擎。
在mysql官網(wǎng)上對(duì)于自定義存儲(chǔ)引擎也有所介紹。編寫自定義存儲(chǔ)引擎
2.4、數(shù)據(jù)存儲(chǔ)層
這個(gè)就是我們平常所說(shuō)的物理存儲(chǔ)啦,主要就是把數(shù)據(jù)存儲(chǔ)到運(yùn)行mysql的服務(wù)器中的文件系統(tǒng)中,并且能夠完成和存儲(chǔ)引擎的交互。
后文
踩坑今天還沒(méi)寫出來(lái),先發(fā)個(gè)存稿,明天繼續(xù)肝。
紙上得來(lái)終覺(jué)淺,絕知此事要躬行。
大家好,我是博主寧在春:主頁(yè)
一名喜歡文藝卻踏上編程這條道路的小青年。
希望:我們,待別日相見(jiàn)時(shí),都已有所成。
學(xué)習(xí)視頻:B站周陽(yáng)老師MySQL進(jìn)階
總結(jié)
以上是生活随笔為你收集整理的Mysql逻辑架构介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 「后端小伙伴来学前端了」记录自己的踩坑第
- 下一篇: 如何使用Docker安装Mycat中间件