MySQL 能夠分爲 Server 層和存儲引擎層兩部分。sql
查詢緩存:緩存
Mysql拿到一個查詢請求以後,會先查詢緩存,以前執行過的語句及結果可能會以Key-Value的形式被存在緩存中,Key是查詢語句,若是存在直接返回,若是沒有再執行後面的流程優化
查詢緩存失效很是頻繁,只要對錶有更新,表上的全部緩存都會被清空.注意Mysql8.0移除了查詢緩存整個功能。3d
分析器:blog
提取關鍵字進行語法分析,「You have an error in your SQL syntax」就是從這兒拋出去的索引
優化器:sql語句
通過分析器以後,Mysql就知道你要作什麼了,在這兒就進行索引的選擇,連表查詢時,決定鏈接順序等等優化sql語句權限
執行器語法
優化器以後知道了該怎麼作,執行器就開始執行語句,先判斷有無權限,有權限繼續執行語句,調用存儲引擎獲取數據請求