MySQL 獨特的儲存引擎架構,讓開發者能像更換引擎一樣靈活切換底層儲存機制。預設安裝支援 ISAM、MyISAM、HEAP 三種引擎,若編譯時加入,也可使用 InnoDB 與 Berkley DB (BDB)。更進階者甚至可透過 MySQL++ API 自行開發客製化引擎。
OPTIMIZE TABLE 回收碎片空間。myisamchk 修復、myisampack 壓縮。DROP TABLE。CREATE TABLE tbl_innodb ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), value_a TINYINT ) ENGINE=InnoDB;
ALTER TABLE tbl_myisam ENGINE=InnoDB;
MySQL 會建立副本、佇列變更、切換後重放變更、刪除舊表,過程自動完成。
mysql_convert_table_format
SHOW TABLE STATUS FROM 資料庫名 LIKE '表格名';
或使用 SHOW CREATE TABLE 表格名 查看建表語句中的 ENGINE 子句。
「更多選擇意味著更好效能」。依據表格業務特性混合部署:
避免「一刀切」使用單一引擎,發揮 MySQL 架構彈性優勢。