Thay đổi Storage Engine của bảng với ALTER TABLE
Sử dụng ALTER TABLE ten_bang ENGINE=ten_engine để chuyển đổi engine.
Tạo bảng với engine MyISAM
mysql> create table DemoTable (
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(20),
StudentAge int,
StudentCountryName varchar(20)
) ENGINE=MyISAM, AUTO_INCREMENT=101;
Query OK, 0 rows affected (0.18 sec)
Kiểm tra engine hiện tại
mysql> show create table DemoTable;
... ENGINE=MyISAM AUTO_INCREMENT=101 ...
Chuyển sang InnoDB
mysql> alter table DemoTable ENGINE=InnoDB; Query OK, 0 rows affected (1.21 sec) Records: 0 Duplicates: 0 Warnings: 0
Kiểm tra lại
mysql> show create table DemoTable;
... ENGINE=InnoDB AUTO_INCREMENT=101 ...
So sánh MyISAM vs InnoDB:
| Đặc điểm | MyISAM | InnoDB |
|---|---|---|
| Transaction (ACID) | Không | Có |
| Foreign Key | Không | Có |
| Locking | Table-level | Row-level |
| Crash Recovery | Kém | Tốt (Redo log) |
| Fulltext Search | Có (cũ) | Có (5.6+) |
| Mặc định MySQL | < 5.5 | ≥ 5.5 |