Computer >> Máy Tính >  >> Lập trình >> MySQL

Tôi có thể sử dụng bảng InnoDB và MyISAM trong một cơ sở dữ liệu duy nhất trong MySQL không?

Có, bạn có thể sử dụng bảng InnoDB và MyISAM trong một cơ sở dữ liệu hoặc kết hợp cả hai trong một cơ sở dữ liệu duy nhất. Đây là cách được khuyến nghị.

Đây là bản demo của cả MyISAM và InnoDB trong một cơ sở dữ liệu. Sau đây là cơ sở dữ liệu và cả hai loại bảng InnoDB và MyISAM. Truy vấn để tạo cơ sở dữ liệu như sau -

mysql> create database BothInnoDBandMyISAM;
Query OK, 1 row affected (0.20 sec)
mysql> use BothInnoDBandMyISAM;
Database changed

Tôi có một cơ sở dữ liệu với tên ‘BothInnoDBandMyISAM’.

Đầu tiên, bảng có loại động cơ InnoDB. Truy vấn để tạo một bảng với công cụ InnoDB như sau -

mysql> create table Student
   -> (
   -> StudentId int,
   -> StudentName varchar(20)
   -> )ENGINE=InnoDB;
Query OK, 0 rows affected (1.20 sec)

Bảng thứ hai có loại động cơ MyISAM. Truy vấn để tạo bảng với MyISAM công cụ như sau -

mysql> create table Employee
   -> (
   -> EmployeeId int,
   -> EmployeeName varchar(30)
   -> )ENGINE=MyISAM;
Query OK, 0 rows affected (0.28 sec)

Đây là truy vấn để kiểm tra loại động cơ từ cùng một cơ sở dữ liệu. Truy vấn như sau cho bảng đầu tiên.

mysql> select engine from information_schema.tables where table_name='Student' and table_schema='BothInnoDBandMyISAM';

Sau đây là kết quả -

+--------+
| ENGINE |
+--------+
| InnoDB |
+--------+
1 row in set (0.00 sec)

Đây là truy vấn để kiểm tra loại công cụ bảng từ cùng một cơ sở dữ liệu. Truy vấn như sau cho bảng thứ hai.

mysql> select engine from information_schema.tables where table_name='Employee' and table_schema='BothInnoDBandMyISAM';

Sau đây là kết quả -

+--------+
| ENGINE |
+--------+
| MyISAM |
+--------+
1 row in set (0.00 sec)