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

วิธีติดตั้งหรือเปิดใช้งาน InnoDB Storage Engine ใน MySQL

ภาพรวม

InnoDB เป็น Storage Engine เริ่มต้น (Default) ตั้งแต่ MySQL 5.5 เป็นต้นมา และใน MySQL 8.0 ก็ยังคงเป็น Default อยู่แล้ว โดยทั่วไปไม่จำเป็นต้องติดตั้งเพิ่มเติม แต่สามารถตรวจสอบและกำหนดค่าได้ผ่านไฟล์ my.ini (Windows) หรือ my.cnf (Linux/macOS)

1. ตรวจสอบสถานะ InnoDB

SHOW ENGINES;
-- หรือ
SHOW VARIABLES LIKE 'have_innodb';

หากแสดง DEFAULT หรือ YES แสดงว่า InnoDB พร้อมใช้งาน

2. ตั้งค่าผ่านไฟล์ my.ini / my.cnf

เปิดไฟล์設定 แล้วตรวจสอบหรือเพิ่มในส่วน [mysqld]:

[mysqld]
default-storage-engine=InnoDB
innodb_buffer_pool_size=1G  -- ปรับตาม RAM (แนะนำ 70-80% ของ RAM)
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=1
innodb_file_per_table=1

หมายเหตุ: หลังแก้ไฟล์ config ต้อง restart MySQL service

3. ระบุ Engine ตอนสร้างตาราง

CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFirstName VARCHAR(100),
    StudentLastName VARCHAR(100),
    StudentAge INT
) ENGINE=InnoDB;

4. ตรวจสอบ Engine ของตาราง

SELECT table_name, engine
FROM information_schema.tables
WHERE table_name = 'DemoTable';

ผลลัพธ์

+------------+--------+
| TABLE_NAME | ENGINE |
+------------+--------+
| DemoTable  | InnoDB |
+------------+--------+

5. แปลงตารางเดิมเป็น InnoDB

ALTER TABLE existing_table ENGINE=InnoDB;

คุณสมบัติหลักของ InnoDB

  • ACID Compliant - รองรับ Transaction (Commit/Rollback)
  • Row-level Locking - ล็อกระดับแถว ประสิทธิภาพดีกว่า Table-lock
  • Foreign Key - รองรับ Constraint ความสัมพันธ์ระหว่างตาราง
  • Crash Recovery - กู้คืนข้อมูลอัตโนมัติหลัง Crash
  • MVCC - Multi-Version Concurrency Control

สรุป

ใน MySQL เวอร์ชันใหม่ (5.5+) InnoDB เปิดอยู่แล้วโดยค่าเริ่มต้น ตรวจสอบด้วย SHOW ENGINES และระบุ ENGINE=InnoDB ตอนสร้างตารางเพื่อความแน่ใจ