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

MySQL 기본 스토리지 엔진을 MyISAM으로 설정하는 방법

MySQL에서 새로 생성되는 테이블에 특정 스토리지 엔진을 기본값으로 사용하고 싶다면 default_storage_engine 시스템 변수를 변경하면 됩니다. 이 글에서는 기본 스토리지 엔진을 MyISAM으로 설정하는 방법과 그 동작 방식을 단계별로 살펴보겠습니다.

1. 기본 스토리지 엔진 설정하기

기본 스토리지 엔진을 변경하려면 다음 문법을 사용합니다.

SET @@default_storage_engine = '엔진이름';

기본 엔진을 MyISAM으로 지정하려면 아래와 같이 실행합니다.

mysql> SET @@default_storage_engine = 'MyISAM';
Query OK, 0 rows affected (0.05 sec)

2. 설정 결과 확인하기

SELECT 문을 사용해 현재 기본 스토리지 엔진이 제대로 변경되었는지 확인할 수 있습니다.

mysql> SELECT @@default_storage_engine;

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

+--------------------------+
| @@default_storage_engine |
+--------------------------+
| MyISAM                   |
+--------------------------+
1 row in set (0.00 sec)

3. 테이블 생성 후 엔진 확인

실제로 테이블을 하나 만들어서 MyISAM 엔진이 적용되는지 확인해 보겠습니다. 먼저 테이블을 생성합니다.

mysql> CREATE TABLE Followers
    -> (
    -> FollowerId int,
    -> FollowerName varchar(20)
    -> );
Query OK, 0 rows affected (0.32 sec)

SHOW TABLE STATUS 명령어로 방금 만든 테이블의 스토리지 엔진을 확인합니다.

mysql> SHOW TABLE STATUS WHERE Name = 'Followers'\G

출력 결과

Name: followers
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 0
Avg_row_length: 0
Data_length: 0
Max_data_length: 281474976710655
Index_length: 1024
Data_free: 0
Auto_increment: 1
Create_time: 2019-02-12 00:42:27
Update_time: 2019-02-12 00:42:28
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)

출력 결과에서 Engine: MyISAM 항목을 통해 별도의 옵션 없이 테이블이 자동으로 MyISAM 엔진으로 생성된 것을 확인할 수 있습니다.

4. 세션 변수의 한계 — MySQL 재시작 시 초기화

주의할 점은 MySQL 8.0.12 버전의 기본 엔진은 InnoDB라는 것입니다. 위에서 설정한 값은 해당 세션에만 유효한 임시 설정입니다. MySQL 서버를 재시작하면 기본값인 InnoDB로 되돌아갑니다.

실제로 MySQL을 재시작해 보겠습니다.

mysql> RESTART;
Query OK, 0 rows affected (0.20 sec)

재시작 후 다시 기본 엔진을 확인하면 InnoDB로 복원된 것을 볼 수 있습니다.

mysql> SELECT @@default_storage_engine;
No connection. Trying to reconnect...
Connection id: 8
Current database: sample
+--------------------------+
| @@default_storage_engine |
+--------------------------+
| InnoDB                   |
+--------------------------+
1 row in set (0.00 sec)

영구적으로 기본 엔진을 설정하는 방법

세션 단위가 아니라 서버 전체에 영구적으로 기본 스토리지 엔진을 지정하려면 MySQL 설정 파일(my.cnf 또는 my.ini)의 [mysqld] 섹션에 다음 내용을 추가한 뒤 서버를 재시작하면 됩니다.

[mysqld]
default-storage-engine=MyISAM

또는 SET GLOBAL 구문을 사용해 현재 실행 중인 서버에 전역적으로 적용할 수도 있습니다. 단, 이 경우에도 서버 재시작 시에는 설정 파일의 값이 우선 적용됩니다.

mysql> SET GLOBAL default_storage_engine = 'MyISAM';

정리

  • SET @@default_storage_engine = 'MyISAM';으로 현재 세션의 기본 엔진을 변경할 수 있습니다.
  • SELECT @@default_storage_engine;으로 현재 설정 값을 확인할 수 있습니다.
  • 세션 변수는 MySQL 재시작 시 초기화되므로 영구 적용을 원한다면 설정 파일(my.cnf)에 default-storage-engine=MyISAM을 추가해야 합니다.