คำตอบ: ใช่ เริ่มตั้งแต่ MySQL 4.0
InnoDB เป็น Storage Engine เริ่มต้น (Default) ตั้งแต่ MySQL 4.0 เป็นต้นมา รวมถึง MySQL 8.0 ที่ใช้อยู่
ตรวจสอบเวอร์ชัน MySQL
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.12 |
+-----------+
ตรวจสอบ Engine ของตาราง
แม้ไม่ระบุ ENGINE ตอนสร้างตาราง ก็จะเป็น InnoDB อัตโนมัติ:
-- ตารางที่ 1: ไม่ระบุ Engine
mysql> create table DemoTable1(Id int NOT NULL AUTO_INCREMENT PRIMARY KEY);
-- ตารางที่ 2: ระบุ Engine = InnoDB
mysql> create table DemoTable2(Id int NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
ตรวจสอบ Engine ผ่าน information_schema
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 |
+--------+
คุณสมบัติสำคัญของ InnoDB
- ACID Compliant - รองรับ Transaction (COMMIT/ROLLBACK)
- Row-level Locking - ล็อกระดับแถว ไม่ใช่ตารางทั้งหมด
- Foreign Key - รองรับความสัมพันธ์ระหว่างตาราง
- Crash Recovery - กู้คืนข้อมูลได้หลัง Crash
สรุป
InnoDB เป็น Default Engine แล้ว ไม่ต้องระบุ ENGINE=InnoDB ทุกครั้ง แต่ระบุไว้ก็ได้เพื่อความชัดเจน