2012-08-06 2 views
1

카산드라를 조사 중이지만 다음 문서에 대한 답변을 찾을 수 없습니다.카산드라 및 쿼리 계층 구조

깊은 계층 구조에서 범위를 쿼리해야합니다. 계층 구조를 표현하는 가장 쉬운 방법은 각 수준을 하나의 열로 유지하는 것입니다. 예를 들어 :

여기
Origin   Manufacturer Price ID 
Europe.Germany VW Group.Audi 20000 1 
Europe.Germany VW Group.Porshe 21000 2 
Europe.Germany BMW    19000 3 

는 의사 SQL의 예는 다음과 같습니다

SELECT ID FROM CompositeTable WHERE (Origin STARTS WITH 'Europe') 
AND (Manufacturer STARTS WITH 'VW Group' AND IS NOT 'VW Group.Porshe' OR IS 'BMW') 
AND (Price BETWEEN 18000 AND 22000) 

결과 :

ID = [1, 3] 

카산드라는 복합 인덱스를 통해이 형태의 검색을 수행 할 수 있습니까?

답변

2

카산드라의 복합 키는 DBMS에서 일종의 multiple-column index이며 c1에서 c6까지의 열이있는 테이블에서 c1, c2 및 c3에 대한 인덱스가있는 경우입니다. DB는 (c1), (c1, c2) 또는 (c1, c2, c3)에 대해 =, > , <, >=, <= 작업을 수행하지만 (c2), (c2, c3), (c3) 또는 (c3)에 대한 쿼리가 아닌 경우 항상 인덱스를 사용하려고 시도합니다. (c1, c3). 케이스 산드에서 동일하지만 여기 내지 C6 C1 여러 열 인덱스가 [열이 제 (C1)에 기초하여 분류되기 때문에 상기 충돌 C2까지 운반하고 이하와 같다]

+0

확인하므로) 산드이 수행 보조 인덱스를 통해 복합 인덱스를 지원합니까? b) 해당 열에서 범위 쿼리를 지원합니까? 일부 성숙한 DB는 후자를 지원하지 않습니다. – IamIC

+0

Datastax 문서를 확인했으며 복합 인덱스에 대한 언급이 없습니다. 그러나 확실히 존재하는 복합 키는 언급하지 않습니다. 내 시나리오가 복합 키에 적합한 경우인가? – IamIC

+1

보조 색인은 합성 키와 완전히 다릅니다. 기본적으로 카산드라에서는 값에 따라 열을 필터링 할 수 없습니다. Inorder를 구현하려면 컬럼에 대한 2 차 인덱스를 작성해야합니다. 그러나 복합 키는 다릅니다. 자동으로 색인을 생성하는 데 도움이되는 구조체이지만 데이터를 모델링하면됩니다. – Tamil