기존 디비가 myisam 으로 되어있는데요 이번에 테이블 전체를 innodb 엔진으로 변경하려고합니다. 이때 phpmyadmin에서 테이블 속성을 innodb로 그냥 수정해줘도 되나요? 아니면 기존 myisam 안의 데이터를 innodb로 변경하기 위해서 특별히 해주어야 하는 작업이 있나요?
인덱스쪽 제외하면 크게 영향 받는 부분은 없을 겁니다. alter table로 engine만 바꿔줘도 됩니다. 단, count(*) 같은 쿼리문이 많이 사용된다면 퍼포먼스는 심각하게 떨어집니다. 아래 링크를 통해 innodb의 제약사항을 확인해보세요. http://dev.mysql.com/doc/refman/5.0/en/innodb-restrictions.html
네 감사합니다.
한가지 더 질문이 있는데요.
두개의 테이블을 조인해서 사용하는 경우에 하나는 innodb 엔진을 사용하고 다른 하나는 myisam 을 사용하는 경우 큰 문제가 생길까요?
조인을 하는 테이블들은 같은 엔진으로 해줘야 하는지 궁금하네요.
그래도 상관이 없다면 기존 시스템에서 트랜잭션이 필요한 테이블들만 innodb 엔진으로 변경할까 해서요.
다른 엔진끼리의 조인은 흔치 않은 경우라 생각되서, MySQL 개발자 포럼을 좀 찾아봤습니다. 일단 MDB와 MyISAM의 조인의 경우에 대한 질문 글이 있었는데, MDB는 BTREE로 인덱스를 구성하고, MyISAM은 Hash로 인덱스를 구성하니, 옵티마이저측에서 쿼리 최적화의 여지가 없어, 성능에 문제가 있을꺼다... 라는 추측성 답변만 있더군요. 제가 생각하더라도 인덱스 구성 방식의 차이가 가장 큰 걸림돌이 될 것 같습니다. 일단 100,000 행 정도의 테스트 테이블을 통해 속도 차이를 비교해보시는 것이 좋을 것 같습니다. 뭐... 속도에 관계 없이, 쿼리 수행 자체에는 문제가 없을 것 같습니다.