儲存引擎是 MySQL 底層處理資料儲存、索引建立、查詢更新的核心模組。MySQL 獨特的插件式架構允許每張表獨立選擇引擎,這是其區別於 Oracle、SQL Server 的關鍵特性。
| 引擎 | 事務 | 行鎖 | 外鍵 | 全文索引 | 適用場景 |
|---|---|---|---|---|---|
| InnoDB | ✅ | ✅ | ✅ | 5.6+ | OLTP、高併發、資料完整性要求高 |
| MyISAM | ❌ | ❌ (表鎖) | ❌ | ✅ | 唯讀密集、日誌、數據倉庫 |
| Memory | ❌ | ❌ | ❌ | ❌ | 臨時表、快速查找、緩存層 |
| Archive | ❌ | ❌ | ❌ | ❌ | 海量日誌、歸檔、僅追加寫入 |
| Merge | ❌ | ❌ | ❌ | ❌ | 分區日誌表、數據倉庫聯合查詢 |
OPTIMIZE TABLE。myisamchk 壓縮,唯讀,讀取需解壓。SHOW ENGINES;
SHOW CREATE TABLE tbl_name;
SHOW TABLE STATUS LIKE 'tbl_name'\G
DESCRIBE tbl_name;
CREATE TABLE user (
id INT NOT NULL AUTO_INCREMENT,
username CHAR(20) NOT NULL,
sex CHAR(2),
PRIMARY KEY (id)
) ENGINE = InnoDB;
ALTER TABLE user ENGINE = InnoDB;