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은 읽기 위주의 작업에서 빠른 성능을 보이지만, 트랜잭션이나 외래 키를 지원하지 않으므로 용도에 맞게 엔진을 선택하는 것이 중요합니다.