SQL Azure에 대한 샤딩 개념은 현재 50GB DB 크기 제한을 극복하기 위해 권장되는 가장 좋은 옵션 중 하나입니다. 샤딩의 핵심 전략은 원자 단위라는 관련 레코드를 단일 샤드에 그룹화하여 응용 프로그램이 단일 SQL Azure 인스턴스 만 쿼리하여 데이터를 검색해야한다는 것입니다.SQL Azure 샤딩 및 소셜 네트워킹 응용 프로그램
그러나 Social networking Apps와 같은 응용 프로그램에서는 엔티티와 레코드의 상호 연결로 인해 단일 샤드의 원자 단위를 그룹화하는 것이 쉽지 않습니다. 그러한 시나리오에 기반한 권장 접근 방식은 무엇일까요?
또한 샤드 드 DB에서 어떤 기본 키를 테이블에 사용해야합니까? 큰 Int 또는 GUID. 나는 현재 BIGINT ID 열을 사용하지만 데이터가 어떤 이유로 합쳐 지려면 다른 샤드의 값 사이에 충돌로 인해 문제가 될 수 있습니다. 어떤 사람들은 GUID (UniqueIdentifier)를 권유한다고 들었지만 성능에 어떤 영향을 줄 수 있는지 조심합니다. 인덱싱 UniqueIdentifier 열이있는 온 프레미스 SQL 서버는 불가능합니다. UniqueIdentifier 열을 사용하는 경우 SQL Azure가 비슷한 전략을 구현하는 방법에 대해 궁금합니다.
나는 NOSQL 기반 옵션과 심지어 Azure 테이블 스토리지를 알고 있지만 이것은 dev 시간을 상당히 늘릴 것이므로 지금은 관계형 데이터베이스 접근 방식을 고수하고있다. – Azwaan
그러면 RBDMS를 다른 곳 (Amazon, Rackspace 등)에서 호스팅 할 수 있습니다. 이렇게하면 더 강력한 VM에서 더 큰 DB를 처리 할 수 있습니다. 캐시 계층에 넣기 만하면 비용을 제어하고 성능을 향상시키는 데 도움이됩니다. 개인적으로는 여전히 noSQL 경로를 살펴볼 것입니다. 장기적으로 최상의 솔루션이 될 것입니다. SQL Azure의 인덱스와 Azure 저장소의 데이터는 혼합 된 방식으로 만 수행됩니다. – BrentDaCodeMonkey
Azure에서 실행중인 NOSQL DB를 사용한다고 가정하면 Neo4J 또는 Sne GraphDB와 같은 Windows DB 스토리지에 대한 Graph DB의 평가는 어떻습니까? – Azwaan