MySQL架构分层
總體上,我們可以把MySQL 分成三層,跟客戶端對接的連接層,真正執(zhí)行操作的服務(wù)層,和跟硬件打交道的存儲引擎層(參考MyBatis:接口、核心、基礎(chǔ))。
連接層
我們的客戶端要連接到MySQL 服務(wù)器3306 端口,必須要跟服務(wù)端建立連接,那么管理所有的連接,驗證客戶端的身份和權(quán)限,這些功能就在連接層完成。
服務(wù)層
連接層會把SQL 語句交給服務(wù)層,這里面又包含一系列的流程:
比如查詢緩存的判斷、根據(jù)SQL 調(diào)用相應(yīng)的接口,對我們的SQL 語句進(jìn)行詞法和語法的解析(比如關(guān)鍵字怎么識別,別名怎么識別,語法有沒有錯誤等等)。
然后就是優(yōu)化器,MySQL 底層會根據(jù)一定的規(guī)則對我們的SQL 語句進(jìn)行優(yōu)化,最后再交給執(zhí)行器去執(zhí)行。
存儲引擎
存儲引擎就是我們的數(shù)據(jù)真正存放的地方,在MySQL 里面支持不同的存儲引擎。再往下就是內(nèi)存或者磁盤。
?
總結(jié)
- 上一篇: 执行引擎(Query Execution
- 下一篇: 一条更新SQL 是如何执行的?