當前位置:網站首頁>MySQL架構設計詳解

MySQL架構設計詳解

2022-01-27 08:23:40 靖節先生

1. MySQL架構設計

MySQL架構設計總共分為四層,分別是連接層,服務層,引擎層與存儲層。
在這裏插入圖片描述和其它數據庫相比, MySQL 有點與眾不同, 它的架構可以在多種不同場景中應用並發揮良好作用。 主要體現在存儲引擎的架構上, 插件式的存儲引擎架構將查詢處理和其它的系統任務以及數據的存儲提取相分離。 這種架構可以根據業務的需求和實際需要選擇合適的存儲引擎。

2. MySQL架構說明

2.1 連接層

就是基於tcp/ip安全連接的客戶端。
最上層是一些客戶端和連接服務, 包含本地 sock 通信和大多數基於客戶端/服務端工具實現的類似於 tcp/ip 的
通信。 主要完成一些類似於連接處理、 授權認證、 及相關的安全方案。 在該層上引入了線程池的概念, 為通過認證安全接入的客戶端提供線程。 同樣在該層上可以實現基於 SSL 的安全鏈接。 服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。

2.2 服務層

就是負責sq的接收,解析,優化,緩存等操作。
在這裏插入圖片描述

2.3 引擎層

就是存儲引擎。
存儲引擎層, 存儲引擎真正的負責了 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不保存

2.4 存儲層

數據存儲層, 主要是將數據存儲在運行於裸設備的文件系統之上, 並完成與存儲引擎的交互。
就是存儲文件。

MySQL官方文檔:https://www.mysql.com/

版權聲明
本文為[靖節先生]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270823394860.html

隨機推薦