您好,登錄后才能下訂單哦!
MySQL數據庫中邏輯架構的原理是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
一、籠統的邏輯架構
先給出一張邏輯架構圖,這張圖是讓你從宏觀的角度來分析認識一下。
從這張圖你可以獲取到如下的信息:
(1)mysql架構大致上可以劃分為四層。
(2)第一層,主要是不同客戶端的連接。
(3)第二層,主要是處理客戶端的連接。
(4)第三層,處理客戶端的sql語句。
(5)第四層,存儲引擎真實的執行sql語句。
現在你已經了解了mysql的整體架構,而且也大致明白了每一層是干嘛的,現在我們把目光逐漸細化,畢竟上面這張圖還是太籠統。
二、細化的邏輯架構圖
看下面這張圖。
這張圖相比較前面那張圖就細化了一部分,從上到下還是分為了四層,
第一層:在這里我們可以看出,連接的客戶端有很多,PHP、python、jdbc等等都有。
第二層:這一層是鏈接層,對應于第一張圖的連接處理層,主要是處理客戶端的連接,這是因為客戶端很多種類很多。
第三層:這一層是服務層。主要是處理客戶端請求的sql語句,如何處理呢?大致流程就是,先查詢緩存,如果緩存有,那就直接拿出來返回。如果沒有那就解析器解析,然后優化器優化,各個存儲引擎提供的功能都集中在這一層,如存儲過程,觸發器,視圖等。
第四層:這一層是引擎層,在這里我們可以看到有好幾種不同的存儲引擎,比如InnoDB,MyISAM,memory等等。真正負責MySQL中數據的存儲和提取。
假如說我們使用jdbc執行一條插入的sql語句,整個流程是如何執行的呢?
首先,jdbc屬于第一層,通過第二層的連接處理連接到mysql服務器,接下來,通過解析器對sql語句進行解析,然后再通過優化器對sql語句進行優化,最終調用第四層的存儲引擎的接口,執行插入語句,將數據插入到文件或者是其他文件系統上。
是不是很簡單。通常在學習mysql的時候,老師都會介紹到存儲引擎。那時候可能你還沒有注意到他的重要性,現在相信你應該體會到了。也就是說服務層的那些功能,都是由存儲引擎提供的。不同的存儲引擎提供的可能是不一樣的。如何去比較這些存儲引擎呢?我們列了一些指標去對比一下:
對于mysql數據庫來說,默認的就是InnoDB,它不能支持哈希索引還有全文索引。因此如果有一天你不喜歡它了也可以去更換,語句就是SET default_storage_engine=< 存儲引擎名 >。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。