MySQL의 MYISAM과 InnoDB 타입의 성능비교

제목이 너무 거창한데 어제 처음으로 MS SQL Server에서 MySQL로 데이타 복사를 하면서 느낌 점을 적어보자 한다.

MS SQL Server에 40만건의 데이타를 갖고 있는 테이블을 DTS를 이용해서 MySQL ODBC 3.51 드라이버를 이용하여 Export를 시작했다. 근데 영 속도가 안나오는 거다. 1시간정도 경과, 9만건의 데이타가 복사됐다. 와! 너무 느렸다. 모두 복사되려먼 4시간을 더 기다려야 하는데 이건 내가 뭔가 설정을 잘못했을 거야 생각하고 Export를 중단하고 여러가지를 체크해봤다.

MySQL에 생성된 테이블 형태를 보니 InnoDB 형태였다. 트랜잭션을 지원하는 게 InnoDB라고 알고 있는 나로서는 굳이 트랙잭션이 필요없어서 이를 MYISAM 타입으로 바꿔서 다시 Export를 시도해보았다. 엄청나게 빨라진 복사 속도. 5분도 안되서 40만건이 데이타가 복사됐다.

InnoDB로는 40만건의 데이타를 Insert하는데 5시간정도가 걸리고, MYISAM 형태로는 5분미만이 걸린다는 결론. 내가 MySQL을 잘 몰라서 다른 고려 사항도 있겠지만, InnoDB는 Insert시 확실히 느렸다.  MySQL 버전 5부터 InnoDB 성능이 많이 향상됐다고 들었는데, 내가 체험해보기에는 MYISAM보다는 Insert에서 만큼은 차이가 많이 났다.