Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

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)