MySQL 獨特的可插拔儲存引擎架構,讓開發者能像賽車手按按鈕換引擎一樣,針對不同業務場景選擇最適合的引擎。預設支援 ISAM、MyISAM、HEAP 三種,常見擴展還有 InnoDB 和 Berkeley DB (BDB),甚至可透過 MySQL++ API 自行開發引擎。
專為「讀多寫少」設計,讀取速度極快、資源佔用低。但不支援交易、無容錯機制,硬碟損壞資料難恢復,適用於非關鍵任務的靜態資料查詢。
MySQL 預設引擎,擴展了 ISAM 功能:支援全文索引、表鎖優化並發讀寫、提供 MyISAMChk 修復工具與 MyISAMPack 壓縮工具。需定期執行 OPTIMIZE TABLE 回收碎片空間。因強調快速讀取,深受 Web 開發青睐,多數虛擬主機僅支援此格式。
資料駐留記憶體,速度遠超磁碟引擎,但資料易失性(重啟丟失)、不支援大型資料集。適合 SELECT 密集型臨時運算,用畢立即 DROP TABLE 釋放資源。
透過 MySQL++ API 實現,雖效能較 MyISAM 低,但提供 ACID 交易支援與外鍵約束。當業務涉及資金轉帳、訂單處理等需強一致性場景時,必須選擇它們。可針對需交易的表用 InnoDB,其餘表用 MyISAM,實現效能與功能平衡。
建表時透過 TYPE 參數指定引擎:
CREATE TABLE tblMyISAM (id INT PRIMARY KEY, value_a TINYINT) TYPE=MyISAM;
CREATE TABLE tblInnoDB (id INT PRIMARY KEY, value_a TINYINT) TYPE=InnoDB;
現有表可用 ALTER TABLE tbl_name TYPE=NewEngine 遷移(MySQL 會建副本、同步變更、切換刪除舊表)。若僅從 ISAM 升級 MyISAM,可用 mysql_convert_table_format 簡化操作。查看表引擎用 SHOW TABLE STATUS 或 SHOW CREATE TABLE。
「更多選擇意味著更好效能」。依業務特性匹配引擎:查詢主導用 MyISAM,交易關鍵用 InnoDB,臨時運算用 HEAP。MySQL 的表級引擎選擇機制,讓你在同一資料庫中實現差異化優化,這正是其核心競爭力所在。