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';

댓글목록
등록된 댓글이 없습니다.