어떤 종류의 데이터베이스를 사용 하시겠습니까? 관계형 데이터베이스 (PostgreSQL, MySQL)와 "NoSQL"(MongoDB, CouchDB) 간에는 큰 차이가 있습니다. (MongoDB, CouchDB)
PostgreSQL에 대해서는 경험이있는 유일한 데이터베이스이기 때문에 관계형에 대해서만 설명하려고합니다.
먼저 모든 것을 하나의 데이터베이스에 보관합니다. 계정 당 데이터베이스를 사용할 때 이점은 없습니다.
두 번째로, 단일 기계를 초과하여 성장할 것이라는 확신이 있어야합니다. 읽기 전용보다 많은 쓰기 작업을 처리 할 수있는 응용 프로그램이 있으므로 마스터 - 슬레이브 복제는 고 가용성을 위해 사용될 뿐이며 PostgreSQL을 사용한 다중 마스터 복제는 쉽지 않습니다.
나의 마지막 연구에서 가장 어려운 방법은 쓰기가 가능하도록 설계된 Postgres-XC과 같은 도구를 사용하는 것이었지만 생산 준비가 어떻게되어 있는지 전혀 알지 못합니다.
다른 해결책은 Bucardo 또는 SkyTools와 같은 도구를 사용하는 것입니다. SkyTools에 대한 경험은 없었지만 작년에 Bucardo에서 일하는 데 많은 어려움을 겪었습니다.
마지막 해결 방법은 sharding입니다. 간단한 방법은 shard number = id % 10
과 같은 일을하는 것입니다. 그러나 이것을 사용하면 샤드를 추가/제거 할 때마다 클러스터를 재조정해야합니다. 올바른 샤드에 쿼리를 전달할 수 있도록 "샤드 인식"애플리케이션을 작성해야합니다.
어쨌든 전에 말했듯이, 먼저 샤드/클러스터 화해야합니다.
"NoSQL"측에 대해서는 솔루션에 대한 경험이 없지만 MongoDB와 CouchDB가 자체적으로 샤딩을 처리한다는 것을 알고 있으므로 솔루션을 사용하는 것이 더 쉽습니다. 그러나 꽤 많이 포기합니다.