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

InnoDB có được bật mặc định trong MySQL không?

Câu trả lời ngắn

Có. Kể từ MySQL 5.5 (đặc biệt là 5.5.5+), InnoDB là engine lưu trữ mặc định. Phiên bản 8.0 (ví dụ 8.0.12 trong bài) hoàn toàn sử dụng InnoDB mặc định.

Kiểm tra phiên bản và engine mặc định

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.12    |
+-----------+

Tạo bảng không chỉ định ENGINE

mysql> CREATE TABLE DemoTable1 (Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
mysql> CREATE TABLE DemoTable2 (Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;

Kiểm tra engine thực tế của cả hai bảng

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 |
+--------+

Kết luận

Cả hai bảng đều có engine InnoDB, dù DemoTable1 không khai báo ENGINE=InnoDB. Điều này xác nhận InnoDB là mặc định.

Thông tin bổ sung

  • Xem engine mặc định hiện tại: SHOW VARIABLES LIKE 'default_storage_engine';
  • Thay đổi engine mặc định trong my.cnf/my.ini: default_storage_engine = InnoDB (đã là mặc định).
  • Các engine khác: MyISAM (cũ, không transaction), MEMORY, CSV, ARCHIVE... InnoDB khuyến nghị cho hầu hết ứng dụng nhờ ACID, khóa hàng, foreign key.
  • File cấu hình my.ini (Windows) hoặc my.cnf (Linux) thường chứa dòng default-storage-engine=InnoDB.