sql語句如何執行的

晨夢~思雨發表於2020-10-17

MySQL 主要分為 Server 層和引擎層,Server 層主要包括聯結器、查詢快取、分析器、優化器、執行器,同時還有一個日誌模組(binlog),這個日誌模組所有執行引擎都可以共用,redolog 只有 InnoDB 有。

引擎層是外掛式的,目前主要包括,MyISAM,InnoDB,Memory 等。

查詢語句的執行流程如下:許可權校驗(如果命中快取)—》查詢快取—》分析器—》優化器—》許可權校驗—》執行器—》引擎

更新語句執行流程如下:分析器----》許可權校驗----》執行器—》引擎—redo log(prepare 狀態—》binlog—》redo log(commit狀態)

 

參考地址:https://github.com/Snailclimb/JavaGuide/blob/master/docs/database/%E4%B8%80%E6%9D%A1sql%E8%AF%AD%E5%8F%A5%E5%9C%A8mysql%E4%B8%AD%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E7%9A%84.md

相關文章