我可以在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)

更新于:2019年7月30日

477 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告