MySQL儲存引擎精講(附帶各種儲存引擎的對比)

2020-07-16 10:04:44
接下來介紹一下儲存引擎的基本概念、MySQL 支援的儲存引擎、儲存引擎的選擇以及操作預設儲存引擎。

什麼是儲存引擎

資料庫儲存引擎是資料庫底層軟體元件,資料庫管理系統使用資料引擎進行建立、查詢、更新和刪除資料操作。不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎還可以獲得特定的功能。

現在許多資料庫管理系統都支援多種不同的儲存引擎。MySQL 的核心就是儲存引擎。

提示:InnoDB 事務型資料庫的首選引擎,支援事務安全表(ACID),支援行鎖定和外來鍵。MySQL 5.5.5 之後,InnoDB 作為預設儲存引擎。

MyISAM 是基於 ISAM 的儲存引擎,並對其進行擴充套件,是在 Web、資料倉儲和其他應用環境下最常使用的儲存引擎之一。MyISAM 擁有較高的插入、查詢速度,但不支援事務。

MEMORY 儲存引擎將表中的資料儲存到記憶體中,為查詢和參照其他資料提供快速存取。

MySQL 5.7 支援的儲存引擎

MySQL 支援多種型別的資料庫引擎,可分別根據各個引擎的功能和特性為不同的資料庫處理任務提供各自不同的適應性和靈活性。在 MySQL 中,可以利用 SHOW ENGINES 語句來顯示可用的資料庫引擎和預設引擎。

MySQL 提供了多個不同的儲存引擎,包括處理事務安全表的引擎和處理非事務安全表的引擎。在 MySQL 中,不需要在整個伺服器中使用同一種儲存引擎,針對具體的要求,可以對每一個表使用不同的儲存引擎。

MySQL 5.7 支援的儲存引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE 等。可以使用SHOW ENGINES語句檢視系統所支援的引擎型別,結果如圖所示。

MySQL數據庫中的存儲引擎