本章內容主要講解MySQL各個功能模塊怎么執(zhí)行驯嘱。
首先,MySQL中有連接器喳坠、分析器鞠评、優(yōu)化器、執(zhí)行器壕鹉。
- 連接器:用戶登入MySQL剃幌,同時驗證該用戶的權限信息。
- 分析器:對用戶的操作命令進行判斷晾浴,判斷是否有關鍵字錯誤或者是語法錯誤负乡。
- 優(yōu)化器:優(yōu)化器是在表里面有多個索引的時候,決定使用哪個索引脊凰;或者在一個語句有多表關聯(lián)(join)的情況下抖棘,決定各個表的連接順序。
- 執(zhí)行器:執(zhí)行你的操作命令狸涌,操作引擎切省,返回結果。
存儲引擎
InnoDB, MyISAM, Memory, MySQL默認為InnoDB.
MySQL各個功能模塊的執(zhí)行過程
連接
- 長連接
連接成功后帕胆,如果客戶端持續(xù)有請求朝捆,則一直使用同一個連接。 - 短連接
每次執(zhí)行完很少的幾次查詢就斷開連接懒豹。
查詢緩存
之前執(zhí)行過sql語句芙盘,都會講命令和結果存儲到查詢緩存中。
不過查詢緩存往往弊大于利脸秽,只要有表更新過儒老,該表相關的查詢緩存將全部失效。
8.0版本后沒有查詢緩存了豹储。