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

วิธีเปลี่ยน Database Engine ของตาราง MySQL

ก่อนอื่น ตรวจสอบ 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 |
+--------+