簡單認識MySQL儲存引擎

随机生成一个id發表於2024-07-30

MySQL體系結構

  • 連線層。一些客戶端和連結服務,主要完成如連線處理、授權認證及選相關的安全方案
  • 服務層。主要完成大多數的核心服務功能,比如SQL介面,快取的查詢,SQL分析和最佳化,部分內建函式的執行。所以跨儲存引擎的功能在這一層實現,如儲存過程、函式等。
  • 引擎層。真正負責DBMS中資料的儲存和提取。伺服器透過api與儲存引擎進行通訊。不同的儲存引擎具有不同功能,可以根據需求來選擇合適的儲存引擎。
  • 儲存層。將資料儲存在檔案系統上,完成與儲存引擎的互動。

MySQL儲存引擎

在建立表時可以指定儲存引擎,現在MySQL的預設儲存引擎是InnoDB,它也是最常用的一種。

InnoDB是一種兼顧高可靠性和高效能和通用儲存引擎。特點:①事務,DML操作遵循ACID模型,支援事務。②行級鎖,提高併發訪問效能。③外來鍵,支援外來鍵約束。InnoDB引擎的每張表都會對應一個.idb表空間檔案,儲存表結構、資料和索引。

MyISAM是MySQL早期預設的儲存引擎。特點:不支援事務,不支援外來鍵約束,支援表鎖但不支援行鎖,訪問速度快。在磁碟中用表結構檔案、索引檔案、資料檔案一起儲存一個表。

Memory的表資料是存放在記憶體中的,只能作為臨時表或快取使用。特點:記憶體存放,預設使用雜湊索引。在磁碟中只有sdi一個檔案存放表結構。

相關文章