和其它資料庫相比,mysql 有點與眾不同,它的架構可以在多種不同場景中應用並發揮良好作用。主要體現在存
儲引擎的架構上,外掛程式式的儲存引擎架構將查詢處理和其它的系統任務以及資料的儲存提取相分離。這種架構可以
根據業務的需求和實際需要選擇合適的儲存引擎。
最上層是一些客戶端和連線服務,包含本地 sock 通訊和大多數基於客戶端/服務端工具實現的類似於 tcp/ip 的通
信。主要完成一些類似於連線處理、授權認證、及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安
全接入的客戶端提供執行緒。 同樣在該層上可以實現基於 ssl 的安全鏈結。 伺服器也會為安全接入的每個客戶端驗
證它所具有的操作許可權。
1.2.1 management serveices & utilities
系統管理和控制工具,例如備份與恢復
1.2.2 sql inte***ce
sql 介面。接受使用者的 sql 命令,並且返回使用者需要查詢的結果。比如 select from 就是呼叫 sql inte***ce
1.2.3 parser
解析器。sql命令傳遞到解析器的時候會被解析器驗證和解析
1.2.4 optimizer
查詢優化器。sql 語句在查詢之前會使用查詢優化器對查詢進行優化,比如有 where 條件時, 優化器來決定先投影還是先過濾
1.2.5 cache 和 buffer
查詢快取。如果查詢快取有命中的查詢結果,查詢語句就可以直接去查詢快取中取 資料。這個快取機制是由一系列小快取組成的。比如表快取,記錄快取,key 快取,許可權快取等
儲存引擎層,儲存引擎真正的負責了 mysql 中資料的儲存和提取,伺服器通過 api 與儲存引擎進行通訊。不同
的儲存引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取。
資料儲存層,主要是將資料儲存在執行於裸裝置的檔案系統之上,並完成與儲存引擎的互動。
儲存引擎就是儲存資料,建立索引,更新查詢資料等等技術的實現方式。儲存引擎是基於表的,而不是基於庫的,所以儲存引擎可被稱為表型別。
oracle,sqlserver等資料庫只有一種儲存引擎,mysql提供了外掛程式式的儲存引擎架構,所以mysql存在多種儲存引擎,可以根據需要使用相應的引擎,或者編寫儲存引擎。
mysql5.0以後預設的儲存引擎是innodb。支援的儲存引擎有:myisam、memory、merge、example、ndb cluster、archive、csv、blackhole、federated等,其中innodb支援事務安全表,其他儲存引擎是非事務安全表。
可以通過命令show engines;來檢視當前資料庫支援的儲存引擎
使用命令show variables like 『%storage_engine%』;預設的儲存引擎
特點innodb
myisam
memory
merge
ndb儲存限制
64tb有有
沒有有事務安全
支援鎖機制
行鎖(用於高併發)
表鎖表鎖
表鎖表鎖
b樹索引√√
√√√雜湊索引
√全文索引
支援(5.6版本以後)
√集群索引
√資料索引√√
√索引快取√√
√√√資料可壓縮
√空間使用高低
n/a低
低記憶體使用高低
中等低高批量插入速度低高
高高高支援外來鍵
√| 高 | 高 | 高 |
| 支援外來鍵 | √ | | | | |
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...