검색을 해보았는데..
InnoDB가 기능적인 측면에는 MyISam보다 좋다고 해서 질문드립니다.
Write 쿼리는 InnoDB가
Read 쿼리는 MyISam이 좋다고 하는데
이 두서버를 리플리케이션을 시킬때
마스터 서버는 InnoDB로
슬레이브 서버는 MyISam으로 구성하여서
마스터 서버는 Write 쿼리를 처리하고
슬레이브에서는 Select만 처리하게 구성을 하려고 하는데요..
가능할까요??
아니면 둘다 InnoDB로 구성하는게 좋을까요?
안녕하세요 Mysql 엔진에 대한 문의인듯합니다.. replication 자체는 복구 및 쿼리 분산에 대해 효율성을 높이는 것이죠.. 말씀하신것처럼 innoDB의 경우에는 트랜잭션 방식의 table을 사용합니다. myisam은 비트랜잭션이죠.. 단순히 쿼리 분산 및 미러링에 replication은 활용하신다면 그닥 문제가 없을듯한데요 최악의 상황(저희는 실시간 DB라 문제가 발생하면-그다지 발생할 확률이 높지는 않습니다만... slave DB를 masterDB로 교체후 복제를 하던지 복구를 하고있습니다.)을 감안한다면, master와 Slave를 같은 방식으로 세팅하는게 좋을 듯합니다. table역시 트랜잭션 허용유무를 가지고 있기때문에 다른 방식으로 세팅했을경우 문제가 발생할지도 모르겠네요(물런 해보진 않았습니다.) 저같은경우에는 모든 테이블이 myisam으로 세팅되어있구요(버전이 3.23이라 ㅋㅋ) update등 DB 수정을 가하는 쿼리는 master에 단순한 select는 슬레이브에서 처리하고있습니다. 하지만 서버의 성능이 좋거나, 많은 쿼리의 동시 실행이 없다면, 굳이 분산처리를 하지 않아도됩니다. 왜냐면, replication이 깨질경우(물런, 이런경우는 자주 발생하지 않습니다만, 알수없는 오류가 있기에 ㅋㅋ) 서비스에 지장을 줄 수 있기때문이지요.. 그래서 내린결론이 모든 서비스 업무는 master에서 처리하고 통계 및 일간 백업등의 실시간 백어블 slave에서 진행하고 있습니다. 아직은 위와 같이 처리 하고있진 않습니다만, 조만간에 작업을 진행해야겠지요 ㅋㅋ 저는 이렇게 진행한다는 것이 결코 이대로 세팅한다는 것은 아니지요... 재철님이 생각하신대로 구성해보고 성능 테스트 후 리포트를 올려주심이 어떨지요 ㅋㅋㅋ 그럼 좋은 하루 되세요 ^^