Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách thay đổi storage engine của bảng MySQL

Để chuyển đổi engine (InnoDB ↔ MyISAM) của một bảng, bạn cần biết engine hiện tại rồi dùng lệnh ALTER TABLE.

1. Kiểm tra engine hiện tại

SELECT ENGINE 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'ten_database' 
  AND TABLE_NAME = 'ten_bang';

Ví dụ: Bảng StudentInformations trong database test đang dùng InnoDB.

+--------+
| ENGINE |
+--------+
| InnoDB |
+--------+

2. Thay đổi engine

ALTER TABLE ten_bang ENGINE = 'ten_engine_moi';

Ví dụ: Chuyển từ InnoDB sang MyISAM:

ALTER TABLE StudentInformations ENGINE = 'MyISAM';

Kết quả: Query OK, 6 rows affected (số dòng bị ảnh hưởng tùy thuộc vào dữ liệu hiện có).

3. Xác nhận thay đổi

SELECT ENGINE 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'test' 
  AND TABLE_NAME = 'StudentInformations';
+--------+
| ENGINE |
+--------+
| MyISAM |
+--------+

Lưu ý: Việc chuyển engine sẽ khóa bảng trong quá trình thực hiện. Nên thực hiện ở giờ ít tải hoặc dùng pt-online-schema-change (Percona Toolkit) cho bảng lớn.