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