Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

InnoDB เป็น Default Engine ใน MySQL หรือไม่?

คำตอบ: ใช่ เริ่มตั้งแต่ 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 ทุกครั้ง แต่ระบุไว้ก็ได้เพื่อความชัดเจน