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

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

是的,您可以在单个数据库中使用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)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程