1. 程式人生 > >[Mysql]一條語句是如何執行的?

[Mysql]一條語句是如何執行的?

首先看下MySQL的基本架構示意圖
在這裡插入圖片描述

聯結器:負責與客戶端進行連線(tcp),判斷許可權的操作.
連線分為長連線和短連線,由於連線過程十分複雜,推薦使用長連線,但是如果全部一樣使用長連線,會使用大量管理連線的記憶體,需斷開連線.

查詢快取:將查詢結果以sql-result的形式存在記憶體中,高版本已經停止該功能,弊大於利,每次內容更新都會造成快取的失效

分析器:詞法分析,分析sql中所代表的含義,語法分析,判斷你寫的sql是否符合mysql的語法.如對不存在的欄位進行過濾,就會產生不存在該column的錯誤

優化器:如何執行這個sql,使用哪個索引,如何join其他表

執行器:先判斷許可權,選擇引擎,呼叫介面,判斷條件,返回結果集