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