MySQL --- 讀書筆記 --- SQL執行流程
阿新 • • 發佈:2022-05-22
MySQL中的SQL執行流程
查詢流程
- 查詢快取:Server如果在查詢快取中發現了這條SQL語句,就會直接將結果返回給客戶端;如果沒有,就會進入解析器階段。但是在MySQL8.0中該功能被刪除
- 解析器解析,對SQL語句進行解析
- 先做詞法分析,識別SQL語句中的各個詞是什麼,代表什麼
- 接著做語法分析,根據詞法分析的結果,根據語法規則,判斷輸入的SQL語句是否正確,如果正確,那將會生成一個語法樹
- 知道SQL語句的行為之後,進入優化器,優化器會確定SQL語句的最終執行路徑,比如說是根據索引檢索,還是全表檢索;一條查詢會有很多執行方式,結果是相同的,那麼優化器的作用就是找到最好的執行計劃
- 查詢優化又分為
邏輯查詢優化
物理查詢優化
- 邏輯查詢優化其實就是通過改變SQL語句的內容,等價變換之後,提高查詢效率
- 物理查詢優化指的是索引,優化每一步實際查詢計算物理路徑的代價
- 查詢優化又分為
- 執行器是最終執行的儲存引擎的上層介面