예를들어 1초에 10만명이 접속한다거나 이런식으로 컴퓨터 한대로는 불가능해서 여러대의 컴퓨터에 DB를 깔았다면.
원격위치로 join은 불가능한가요.
예를들어 회원테이블만 존제하는 DB가 있고 게시판만 존재하는 DB가 있어서 게시판 출력시 회원DB를 조인한다거나.. (생각해보니 이것도 자원이 너무 심하게 들어가네요....)
또 다른 질문은 MYSQL도 미러서버 같은게 가능한가요?
원격 위치로 join은 불가능합니다.
NDB를 통해 클러스터링 구성이 가능하지만, 원하시는 방향이 이쪽은 아닐 것 같습니다.
http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster.html
다음과 같은 전략은 어떨까 생각해봅니다.
(1) 게시판 출력시에 회원 DB를 조회하지 않도록 한다.
-> 기본적으로 작성자의 UID만을 기억하게끔 하고, 회원 DB와 조인하여 작성자의 이름을 출력하게 하는데, 이에 부담이 됩니다. UID외의 사용자의 몇몇 추가정보를 게시판 테이블에 같이 넣는 것도 방법입니다.
(2) 자주 사용되는 게시판은 별도의 DB로 분리한다.
-> 서비스 품질의 개선을 위해, 고 가용성이 요구되는 대상 테이블/DB에 대해서는 물리적인 분리가 필요할 수 있습니다. 어플리케이션 레이어에서 사용자의 요청에 따라 다른 DB에 접속할 수 있도록 처리해주는 것도 방법입니다.
추가로, MySQL은 리플리케이션을 통해 일종의 미러링 효과를 낼 수 있습니다. 넌-트랜잭셔널 작업에 대해서는 멀티-마스터로 구성하여 미러링을 흉내낼 수 있으며, 그 외의 경우 마스터-슬레이브로 구분하여 읽기/쓰기 작업을 분리할 수 있습니다. 경우에 따라 구성 방식에 많은 차이가 있으므로, 이에 대해서는 MySQL 레퍼런스를 참고하시는 것이 좋겠습니다. 아래 링크를 참조하세요.
http://dev.mysql.com/doc/refman/5.0/en/replication.html