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