Câu trả lời ngắn
Có. Kể từ MySQL 5.5 (đặc biệt là 5.5.5+), InnoDB là engine lưu trữ mặc định. Phiên bản 8.0 (ví dụ 8.0.12 trong bài) hoàn toàn sử dụng InnoDB mặc định.
Kiểm tra phiên bản và engine mặc định
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.12 |
+-----------+
Tạo bảng không chỉ định ENGINE
mysql> CREATE TABLE DemoTable1 (Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
mysql> CREATE TABLE DemoTable2 (Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
Kiểm tra engine thực tế của cả hai bảng
mysql> SELECT ENGINE FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'web' AND TABLE_NAME = 'DemoTable1';
+--------+
| ENGINE |
+--------+
| InnoDB |
+--------+
mysql> SELECT ENGINE FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'web' AND TABLE_NAME = 'DemoTable2';
+--------+
| ENGINE |
+--------+
| InnoDB |
+--------+
Kết luận
Cả hai bảng đều có engine InnoDB, dù DemoTable1 không khai báo ENGINE=InnoDB. Điều này xác nhận InnoDB là mặc định.
Thông tin bổ sung
- Xem engine mặc định hiện tại:
SHOW VARIABLES LIKE 'default_storage_engine'; - Thay đổi engine mặc định trong
my.cnf/my.ini:default_storage_engine = InnoDB(đã là mặc định). - Các engine khác: MyISAM (cũ, không transaction), MEMORY, CSV, ARCHIVE... InnoDB khuyến nghị cho hầu hết ứng dụng nhờ ACID, khóa hàng, foreign key.
- File cấu hình
my.ini(Windows) hoặcmy.cnf(Linux) thường chứa dòngdefault-storage-engine=InnoDB.