Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 MyISAM 엔진으로 테이블 생성하는 방법 완벽 가이드

MySQL에서 MyISAM 엔진을 사용하는 테이블을 생성하려면 CREATE TABLE 문 마지막에 ENGINE 옵션을 지정하면 됩니다. 이 글에서는 MyISAM 엔진 테이블을 만드는 방법과, 실제로 해당 엔진이 적용되었는지 확인하는 여러 가지 방법까지 단계별로 살펴보겠습니다.

1. MyISAM 엔진으로 테이블 생성하기

테이블을 생성할 때 문장 끝에 ENGINE=MyISAM을 추가하면 해당 테이블은 MyISAM 스토리지 엔진으로 생성됩니다.

mysql> create table StudentRecordWithMyISAM
   -> (
   -> Id int,
   -> StudentName varchar(100),
   -> StudentAge int
   -> )ENGINE=MyISAM;
Query OK, 0 rows affected (0.26 sec)

위 예제에서처럼 ENGINE=MyISAM 옵션을 지정하면 'StudentRecordWithMyISAM' 테이블이 MyISAM 엔진 기반으로 생성됩니다.

2. DESC 명령어로 테이블 구조 확인하기

테이블에 어떤 컬럼들이 있는지 확인하려면 DESC(DESCRIBE) 명령어를 사용합니다.

mysql> DESC StudentRecordWithMyISAM;

실행 결과는 다음과 같습니다.

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| Id          | int(11)      | YES  |     | NULL    |       |
| StudentName | varchar(100) | YES  |     | NULL    |       |
| StudentAge  | int(11)      | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

3. SHOW TABLE STATUS로 엔진 확인하기

테이블이 실제로 MyISAM 엔진으로 생성되었는지 확인하려면 SHOW TABLE STATUS 명령어를 사용할 수 있습니다.

mysql> SHOW TABLE STATUS FROM business LIKE 'StudentRecordWithMyISAM';

아래 출력 결과의 Engine 컬럼을 보면 MyISAM으로 표시되어 있는 것을 확인할 수 있습니다.

+-------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| Name                    | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation          | Checksum | Create_options | Comment |
+-------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| studentrecordwithmyisam | MyISAM |      10 | Dynamic    |    0 |              0 |           0 | 281474976710655 |         1024 |         0 |              1 | 2018-10-22 15:47:01 | 2018-10-22 15:47:02 | NULL       | utf8mb4_unicode_ci |     NULL |                |         |
+-------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
1 row in set (0.14 sec)

4. information_schema로 MyISAM 테이블 조회하기

information_schema.TABLES 뷰를 조회하면 특정 데이터베이스 내에 존재하는 MyISAM 엔진 테이블 목록을 한 번에 확인할 수 있습니다.

mysql> SELECT TABLE_NAME,
   -> ENGINE
   -> FROM information_schema.TABLES
   -> WHERE TABLE_SCHEMA = 'business' AND ENGINE = 'MyISAM';

실행 결과는 다음과 같습니다.

+-------------------------+--------+
| TABLE_NAME              | ENGINE |
+-------------------------+--------+
| studentrecordwithmyisam | MyISAM |
+-------------------------+--------+
1 row in set (0.00 sec)

마무리

이처럼 MySQL에서 MyISAM 엔진 테이블을 생성하는 것은 ENGINE=MyISAM 옵션 한 줄이면 충분합니다. 생성 후에는 DESC, SHOW TABLE STATUS, 그리고 information_schema 조회를 통해 테이블 구조와 적용된 스토리지 엔진을 손쉽게 검증할 수 있습니다. 참고로 MyISAM은 읽기 위주의 작업에서 빠른 성능을 보이지만, 트랜잭션이나 외래 키를 지원하지 않으므로 용도에 맞게 엔진을 선택하는 것이 중요합니다.