2014-03-25 5 views
3

응용 프로그램 용 CouchBase를 평가 중이며보기에서 범위 쿼리에 대해 알아 내려고합니다. 하나의 키, 여러 개의 키 또는 범위에 대한보기를 수행 할 수 있음을 알고 있습니다. 여러 범위에 대해 얻을 수 있습니까? 즉,보기 키 0-10, 50-100, 5238-81902로 항목을 검색하려고합니다. 동시에 100 개의 서로 다른 범위가 필요할 수 있으므로 데이터베이스에 100 건의 요청을해야하는 것은 많은 오버 헤드처럼 보입니다.CouchBase보기는 여러 범위에 적용됩니다.

답변

2

내가 아는 한 couchbase에는 하나의보기로 여러 범위에서 값을 가져 오는 것을 구현할 수있는 방법이 없습니다. Couchbase N1QL의 일부 기능이있을 수 있습니다 (또는 향후 구현 될 예정입니다). 그러나 나는 그 기능을 사용하지 않았습니다.

귀하의 질문에 100 개의 요청이 큰 오버 헤드가되지 않습니다. Couchbase는 조용하고 빠르며 초당 많은 작업을 처리하도록 설계되었습니다. 또한보기가 올바르게 디자인 된 경우 각 쿼리에서 "다시 계산되지"않습니다.

1. 범위의 최소값과 최대 값을 결정하십시오 (예제에 따라 0..81902가됩니다). 2. 문서 ID와 값 범위 만 반환하는 쿼리보기 결과에 모든 문서를 포함시키지 않고 기반으로했습니다. 3. 클라이언트 측 필터 배열에서 범위 (0-10, 50-100, 5238-81902)에 따라 이전 단계의 결과를 으로 가져온 다음 getMulti를 배열에 남아있는 문서 ID와 함께 사용하십시오.

데이터 구조를 알 수 없으므로 두 가지 방법을 시도하고 테스트하고 요구 사항에 가장 적합한 데이터를 선택할 수 있습니다.

+0

좋은 답변, Couchbase를 많이 (이슈가 아님) 치는 것에 대해 정말로 염려한다면 범위 결과를 항상 자신의 키/문서로 캐시 할 수 있습니다. – scalabilitysolved

+0

나는 Couchbase에 대한 실제적인 히트에 덜 관심이 많고 많은 요청의 오버 헤드에 더 관심이있다. (예 : 메모리, 스레드 등) C#에서이 작업을 수행하고 있으며 Couchbase SDK는 비동기 적이 지 않으므로 스레드를 연결하려고합니다. –

+0

너무 많이 신경 쓰지는 않겠지 만, 우리는 Java로 프로덕션 환경에서 couchbase 스택을 실행합니다 (약간 차이가 있습니다). 그리고 SDK에 대한 메모리/스레딩 문제가 없었고, 우리는 꽤 힘들었습니다. http://scalabilitysolved.com/build-a-kick-ass-couchbase-stack-for-under-1000/ – scalabilitysolved

관련 문제