首先是連接器的工作,嗯,與客戶端進行TCP三次握手建立連接,校驗客戶端的用戶名和密碼,如果用戶名和密碼都對了,那么就會檢查該用戶的權限,之后執行的所有SQL語句都是基于該權限
接著客戶端就可以向數據庫發送查詢語句,首先數據庫會先查詢緩存,這是在server層發生的,但是MySQL 8.0以后已經刪除了這個步驟
第三步是解析sql,這一步是解析器做的,他會檢查我們的SQL語句有沒有錯誤,并且構建出語法樹
第四步是執行sql,執行sql分為三個步驟,一是預處理階段,預處理階段,由預處理器來完成,他負責,查詢字段存不存在,以及將select *中的*展開為表中的每一列,二是優化階段,由優化器來完成,它負責根據查詢成本確定一個最終的查詢方案,三是執行階段,由執行器完成,根據計劃執行sql語句從存儲引擎讀取記錄并返回給客戶端。
家人們,,心亂亂的,這就是二十歲嗎
?
?