Mysql基礎架構
客戶端
客戶端可以是JDBC代碼工具、可視化工具或是命令行,我們通過客戶端提交URL、用戶名和密碼等信息
連接器
連接器負責和客戶端建立連接、獲得權限,維護和管理連接,連接器用從我們在客戶端輸入的信息與數據庫進行連接
查詢緩存
當我們與數據庫建立連接之後,會首先到查詢緩存查詢是否之前查詢過這條命令,如果沒有則繼續執行後續階段
但是,不推薦使用查詢緩存:
– 1、查詢緩存的失效比較頻繁,只要表更新,緩存就會清空
– 2、緩存對應新更新的數據命中率比較低
並且,MySQL 8.0 版本直接將查詢緩存的整塊功能刪掉了,也就是說 8.0 開始徹底沒有這個功能了,這裏大家瞭解一下就好
分析器
當查詢緩存失敗後,就要執行sql語句了,Mysql需要知道你要幹什麼,因此就要對sql語句進行分析,首先做詞法分析,sql語句是由空格和字符串組成的,要識別出字符串,然後進行語法分析,看你的sql語句是否滿足mysql語法規則
優化器
經過分析器,mysql就知道你要幹什麼,但是在執行之前,還要經過優化器,當表中有多個索引的時候,決定用哪個索引,當sql語句需要做多表關聯的時候,決定表的連接順序,等等。在優化器階段會制定語句的執行方案,簡單來說,優化器的作用就是爲了sql語句更好的執行,然後進行執行階段
執行器
操作引擎,返回相應的結果。