說一下MySQL執(zhí)行一條查詢語句的內(nèi)部執(zhí)行過程? 答: 1)客戶端先通過連接器連接到MySQL服務器 2)連接器權(quán)限驗證通過后,先查詢是否有查詢緩存,如果有緩存(之前執(zhí)行過此語句)則直接返回緩存數(shù)據(jù),如果沒有則進入分析器 3)分析器對查詢語句進行語法分析和詞法分析,判斷SQL語法是否正確,如果查詢語法錯誤會直接返回客戶端錯誤信息,如果語法正確則進入優(yōu)化器 4)優(yōu)化器對查詢語句進行優(yōu)化處理,例如一個表里有多個索引,優(yōu)化器會判別哪個索引性能更好 5)優(yōu)化器執(zhí)行完進入執(zhí)行器,執(zhí)行器對語句進行查詢對比,查到滿足條件的所有數(shù)據(jù)然后返回 |
|