可以在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 教程
极客教程