資料庫 Mysql 邏輯架構簡介
阿新 • • 發佈:2020-12-12
資料庫 Mysql 邏輯架構簡介
1.整體架構圖
和其它資料庫相比, MySQL 有點與眾不同, 它的架構可以在多種不同場景中應用併發揮良好作用。 主要體現在儲存引擎的架構上, 外掛式的儲存引擎架構將查詢處理和其它的系統任務以及資料的儲存提取相分離。 這種架構可以根據業務的需求和實際需要選擇合適的儲存引擎。
-
連線層
就是基於tcp/ip安全連線的客戶端。
最上層是一些客戶端和連線服務, 包含本地 sock 通訊和大多數基於客戶端/服務端工具實現的類似於 tcp/ip 的
通訊。 主要完成一些類似於連線處理、 授權認證、 及相關的安全方案。 在該層上引入了執行緒池的概念, 為通過認證安全接入的客戶端提供執行緒。 同樣在該層上可以實現基於 SSL 的安全連結。 伺服器也會為安全接入的每個客戶端驗證它所具有的操作許可權。 -
服務層
就是負責sq的接收,解析,優化,快取等操作。
-
引擎層
就是儲存引擎。
儲存引擎層, 儲存引擎真正的負責了 MySQL 中資料的儲存和提取, 伺服器通過 API 與儲存引擎進行通訊。 不同的儲存引擎具有的功能不同, 這樣我們可以根據自己的實際需要進行選取。
常見的就是innodb與Myisam。
Myisam | Innodb | |
---|---|---|
1 | myisam是預設表型別不是事物安全的 | innodb支援事物 |
2 | myisam不支援外來鍵 | Innodb支援外來鍵 |
3 | myisam支援表級鎖(不支援高併發,以讀為主) | innodb支援行鎖(共享鎖,排它鎖,意向鎖),粒度更小,但是在執行不能確定掃描範圍的sql語句時,innodb同樣會鎖全表 |
5 | myisam在磁碟上儲存上有三個檔案.frm(儲存表定義) .myd(儲存表資料) .myi(儲存表索引) | innodb磁碟上儲存的是表空間資料檔案和日誌檔案,innodb表大小隻受限於作業系統大小 |
6 | myisam使用非聚集索引,索引和資料分開,只快取索引 | innodb使用聚集索引,索引和資料存在一個檔案 |
7 | myisam儲存表具體行數 ,所以count很快 | innodb不儲存 |
- 儲存層
資料儲存層, 主要是將資料儲存在運行於裸裝置的檔案系統之上, 並完成與儲存引擎的互動。
就是儲存檔案。