我可以在 MySQL 的单个数据库中使用 InnoDB 和 MyISAM 表吗?

mysqlmysqli database

是的,您可以在一个数据库中使用 InnoDB 和 MyISAM 表,也可以将它们合并到一个数据库中。这是推荐的方法。

以下是 MyISAM 和 InnoDB 在一个数据库中的演示。以下是数据库和表类型 InnoDB 和 MyISAM。创建数据库的查询如下 −

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

我有一个名为"BothInnoDBandMyISAM"的数据库。

首先,该表的引擎类型为 InnoDB。创建引擎为 InnoDB 的表的查询如下: −

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

第二张表的引擎类型为 MyISAM。创建引擎为 MyISAM 的表的查询如下 −

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

以下是从同一数据库检查引擎类型的查询。第一个表的查询如下。

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

以下是输出 −

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

以下是检查同一数据库中表引擎类型的查询。第二个表的查询如下。

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

以下是输出 −

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


相关文章