Để chuyển đổi engine (InnoDB ↔ MyISAM) của một bảng, bạn cần biết engine hiện tại rồi dùng lệnh ALTER TABLE.
1. Kiểm tra engine hiện tại
SELECT ENGINE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'ten_database'
AND TABLE_NAME = 'ten_bang';
Ví dụ: Bảng StudentInformations trong database test đang dùng InnoDB.
+--------+
| ENGINE |
+--------+
| InnoDB |
+--------+
2. Thay đổi engine
ALTER TABLE ten_bang ENGINE = 'ten_engine_moi';
Ví dụ: Chuyển từ InnoDB sang MyISAM:
ALTER TABLE StudentInformations ENGINE = 'MyISAM';
Kết quả: Query OK, 6 rows affected (số dòng bị ảnh hưởng tùy thuộc vào dữ liệu hiện có).
3. Xác nhận thay đổi
SELECT ENGINE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test'
AND TABLE_NAME = 'StudentInformations';
+--------+
| ENGINE |
+--------+
| MyISAM |
+--------+
Lưu ý: Việc chuyển engine sẽ khóa bảng trong quá trình thực hiện. Nên thực hiện ở giờ ít tải hoặc dùng pt-online-schema-change (Percona Toolkit) cho bảng lớn.