Cả hai đều là storage engine (engine lưu trữ). MySQL 8.0 mặc định dùng InnoDB.
Kiểm tra engine hiện tại
mysql> USE business; mysql> SHOW TABLE STATUS;
Kết quả cho thấy cột Engine hầu hết là InnoDB.
Chuyển engine sang MyISAM
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' ENGINE=MyISAM;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'sample' AND ENGINE = 'InnoDB' AND TABLE_TYPE = 'BASE TABLE';
Chạy các câu lệnh ALTER TABLE sinh ra để chuyển đổi.
So sánh nhanh
| Đặc điểm | InnoDB (mặc định) | MyISAM (cũ) |
|---|---|---|
| Transaction (ACID) | Hỗ trợ đầy đủ | Không hỗ trợ |
| Khóa ngoại (FK) | Hỗ trợ | Không hỗ trợ |
| Khóa hàng (Row-level lock) | Có | Chỉ khóa bảng (Table-level) |
| Crash recovery | Tự động (redo/undo log) | Cần repair thủ công |
| Fulltext search | Từ 5.6+ | Có sẵn từ lâu |
| Hiệu năng đọc thuần túy | Tốt | Nhanh hơn một chút (đơn luồng) |
| Dung lượng disk | Lớn hơn (metadata, log) | Nhỏ hơn |
Khuyến nghị: Mặc định dùng InnoDB cho hầu hết ứng dụng (transaction, FK, concurrency, crash-safe). Chỉ dùng MyISAM cho bảng read-only, fulltext search legacy, hoặc nhúng (embedded) cực nhỏ.