mongo db에서 복합 기본 키를 처리하는 가장 좋은 방법을 결정하려고합니다. 이 시스템의 데이터와 상호 작용하기위한 주요 열쇠는 2 개의 uuids로 구성됩니다. uuids의 조합은 고유 한 것으로 보장되지만 개별 uuids도 마찬가지입니다.MongoDB 및 복합 기본 키
가 (here를 제안)이 개 값
를 사용하여 표준 자동으로 만들어지는 기본 키 객체를 사용
나는이를 관리하는 몇 가지 방법을 참조 생성 된 mongo 객체 ID를 기본 키로 생성하고, 두 개의 개별 필드에 내 키를 저장 한 다음,이 두 필드에 복합 색인을 생성하십시오.
기본 키를 2 uuids의 해시
내가 현재 이러한 방법의 성능에 미치는 영향은 무엇
모르고 나는 다른 어떤 멋진 솔루션?
옵션 1의 경우 순차적 키가 아닌 것에 대한 삽입 성능이 걱정됩니다. 나는 이것이 전통적인 RDBMS 시스템을 죽일 수 있다는 것을 알고 있으며 MongoDB에서도 이것이 사실 일 수 있다는 징후를 보았습니다.
옵션 2의 경우 시스템에서 사용하지 않는 기본 키를 사용하는 것이 약간 이상한 것 같습니다. 또한 쿼리 성능이 옵션 1만큼 좋지 않을 수 있습니다. 전통적인 RDBMS에서는 클러스터 된 인덱스가 최상의 쿼리 결과를 제공합니다. MongoDB와 얼마나 관련이 있습니까?
옵션 3의 경우 단일 ID 필드를 만들지 만 삽입 할 때 다시 순차적이지는 않습니다. 이 접근법에 대한 다른 장단점이 있습니까?
옵션 4의 경우 ... 옵션 4는 무엇입니까?
MongoDB 대신 CouchDB를 사용하는 것에 대한 논의도 있습니다. CouchDB를 사용하면 다른 해결책을 제시 할 수 있습니까?
MORE INFO : 문제에 대한 몇 가지 배경을 찾을 수 있습니다 나는 당신은 여전히 모두 UUID 필드를 처리하는 인덱스를 만들 수 있습니다 옵션 2로 갔어요 것이고, 성능은 동일해야 here
아마도 가장 중요한 질문은이 데이터에 어떻게 액세스 할 예정입니까? 분명히 삽입 - 업데이트를 쓰고 있습니까? 쿼리는 어떨까요? 이제까지 삭제? –
주로 쓰고 있습니다. 그런 다음 업데이트합니다 (대부분 큰 버스트). 상당한 수의 삽입물 (다시, 대부분 큰 폭발음). 비정기 삭제. – herbrandson
업데이트를 사용할 필드는 무엇입니까? 하나 또는 둘 다? –