데이터베이스

Total 205
Today 0
profile_image
슈퍼아이피
18-06-25 10:55 0개 623회
MySQL
MyISAM을 InnoDB로 변경하기

Engine Type이 MyISAM으로 작성 되어있는 테이블들을 InnoDB로 변환하는 방법엔 크게 두가지 방법이 있습니다.

A. Alter 명령어를 이용한 table 설정을 변경하는 방법

이 방법은 간편하긴 하지만 데이터의 유실과 퍼포먼스가 떨어질 수 있다는 문제가 있습니다.

B. 기존 테이블들을 덤프를 뜬후 새롭게 InnoDB테이블로 복원하는 법

A 방법보다 조금 귀찮긴 하지만 데이터의 보존과 더 높은 성능을 보장합니다.
B 방법을 통해 MyISAM 테이블들을 InnoDB로 변경해보겠습니다.

 

0. 테스트 환경

  • MySQL Version : 5.1.73
  • OS : CentOS 7

1. 기존(MyISAM으로 설정된) DB를 Dump 백업합니다.

# mysqldump -u {로그인아이디} -p {백업할 데이터베이스 이름} > {덤프파일 명}

# mysqldump -u root -p test_db > test_db.sql 

2. 복원시 InnoDB로 적용하기 위해 덤프파일의 내용을 변경합니다.

# sed -e ‘s/ENGINE=MyISAM/Engine=InnoDB/g’ {덤프파일 명} > {새로 적용할 덤프파일 명}

# sed -e ‘s/ENGINE=MyISAM/Engine=InnoDB/g’ test_db.sql > test_db2.sql

3. mysql 콘솔에 접속 후 기존의 데이터베이스를 삭제하고 새로 생성합니다.

mysql> drop database {삭제할 데이터베이스 명}

mysql> drop database test_db

mysql> create database {생성할 데이터베이스 명}

mysql> create database test_db

4. 변경된 덤프파일을 이용해 데이터 베이스를 복원합니다.

# mysql -u {로그인 아이디} -p {복원할 데이터베이스 명} < {새로 적용할 덤프파일 명}

# mysql -u root -p test_db < test_db2.sql

5. 복원된 테이블들의 Engine Type을 확인합니다.

 select table_schema,table_name,engine from information_schema.tables where table_schema='superip';

추천 0 비추천 0

댓글목록

등록된 댓글이 없습니다.