ก่อนอื่น ตรวจสอบ Engine ปัจจุบันของตารางว่าคือ InnoDB หรือ MyISAM โดยดูจากคอลัมน์ ENGINE ใน information_schema.tables
ตรวจสอบ Engine ปัจจุบัน
SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'yourDatabaseName' AND TABLE_NAME = 'yourTableName';
ตัวอย่าง
สร้างตาราง StudentInformations:
mysql> CREATE TABLE StudentInformations (
-> StudentId INT NOT NULL AUTO_INCREMENT,
-> StudentFirstName VARCHAR(20),
-> StudentLastName VARCHAR(20),
-> PRIMARY KEY(StudentId)
-> );
ตรวจสอบ Engine (สมมติฐานฐานข้อมูลชื่อ 'test'):
mysql> SELECT ENGINE
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'test'
-> AND TABLE_NAME = 'StudentInformations';
ผลลัพธ์
+--------+ | ENGINE | +--------+ | InnoDB | +--------+
เปลี่ยน Engine ด้วยคำสั่ง ALTER TABLE
ALTER TABLE yourTableName ENGINE = 'yourEngineName';
ตัวอย่างเปลี่ยนจาก InnoDB เป็น MyISAM:
mysql> ALTER TABLE StudentInformations ENGINE = 'MyISAM'; Query OK, 6 rows affected (1.84 sec)
หมายเหตุ: ข้อความ "6 rows affected" แสดงจำนวนแถวที่ถูกย้ายระหว่างการเปลี่ยน Engine
ยืนยันการเปลี่ยนแปลง
mysql> SELECT ENGINE
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'test'
-> AND TABLE_NAME = 'StudentInformations';
ผลลัพธ์หลังเปลี่ยน
+--------+ | ENGINE | +--------+ | MyISAM | +--------+