MySQL DB의 MyISAM 테이블을 InnoDB 테이블로 바꾸는 명령으로 흔히 다음 명령어가 알려져 있다.
alter table 테이블_이름 engine=InnoDB;
그런데 이 단순히 명령만 내려 테이블 형식을 바꾸면, 실제로 운영하는 게시판이나 블로그 도구의 처리 속도가 오히려 떨어져서 그대로 두느니만 못할 때도 생긴다. 단순환 변환 명령보다는 테이블을 새로 만드는 과정을 거쳐야 뒤탈이 적다.
phpMyAdmin을 쓸 수 있다면, 다음 과정을 거쳐서 MyISAM 테이블을 InnoDB 형식으로 바꿀 수 있다.
- phpMyAdmin에서 InnoDB로 바꿀 MyISAM 테이블을 골라 SQL 파일로 내보낸다(export).
- 받은 SQL 파일을 문서 편집기로 열어서 문자열 모두 바꾸기 기능으로 'ENGINE=MyISAM'을 'ENGINE=InnoDB'로 바꾸고 저장한다.
- 다시 phpMyAdmin에서 파일로 내보냈던 테이블을 지우고(drop), 고친 SQL 파일을 불러온다(import).
phpMyAdmin으로 백업하고 복구하는 작업에 SQL 파일을 편집하는 과정이 끼어 들어갔다고 보면 맞다.
SQL 파일이 너무 크다면, zip이나 gz 방식으로 압축하여 받고 올릴 수 있다. 이전판의 MySQL에서 운영하다가 내보낸 SQL 파일에는 'ENGINE=MyISAM'이 아니라 'type=MyISAM'이라고 적혀 있을 수 있는데, 'type'을 'engine'으로 바꾸어 적어야 MySQL 5.5 5.1이상에서 쓸 때에 오류를 만나지 않는다.
출처 : http://pat.im/1003