MySQL的存儲引擎

前言

MySQL被設計爲一個單進程多線程架構的數據庫,其體系結構如下圖1-1所示:


從圖1-1我們可以發現,MySQL由以下幾部分組成:

  • 連接池組件(Connection Pool)。
  • 管理服務和工具組件(Management Services & Utilities)。
  • SQL接口組件(SQL Interface)。
  • 查詢分析器組件(Parser)。
  • 優化器組件(Optimizer)。
  • 緩衝組件(Caches & Buffers)。
  • 插件式存儲引擎(Pluggable Storage Engines)。
  • 物理文件(Files & Logs)。

MySQL區別於其他數據庫的最重要的特點:
擁有插件式的表存儲引擎

接下來我們具體說說MySQL的表存儲引擎。

MySQL表存儲引擎

存儲引擎的好處在於,每個存儲引擎都有各自的特點,能夠根據具體的應用建立不同的存儲引擎表。
由於MySQL的開源特性,存儲引擎可以分爲MySQL官方存儲引擎和第三方存儲引擎。

以下表格列出常見存儲引擎的特性特點:

特性 MyISAM BDB Memory InnoDB Archive NDB
存儲限制 No No Yes 64TB No Yes
事務(提交、回滾等) ✔︎ ✔︎
鎖粒度 Table Page Table Row Row Row
MVCC ✔︎ ✔︎ ✔︎
地理空間支持 ✔︎
B-Tree 索引 ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Hash索引 ✔︎ ✔︎ ✔︎
全文檢索索引 ✔︎
聚集索引 ✔︎
數據緩存 ✔︎ ✔︎ ✔︎
索引緩存 ✔︎ ✔︎ ✔︎ ✔︎
壓縮數據 ✔︎ ✔︎
加密數據 ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
存儲成本(空間利用率) N/A 非常低
內存成本
批量插入的速度 非常高
集羣數據庫支持 ✔︎
複製支持 ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
外鍵支持 ✔︎
備份、時間點恢復 ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
查詢緩存支持 ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
更新數據字典的統計信息 ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章