INDEX 생성 및 삭제 Cassandra
Cassandra 인덱스 생성
인덱스 생성' 명령어는 사용자가 지정한 컬럼에 인덱스를 생성한다. 인덱싱하려는 열에 대한 데이터가 이미 존재하는 경우 Cassandra 'create index' 문 실행 중에 데이터에 대한 인덱스를 생성합니다.
- 인덱스를 생성한 후, Cassandra 데이터가 삽입되면 자동으로 새 데이터를 인덱싱합니다.
- 기본 키가 이미 인덱싱되어 있으므로 기본 키에 대한 인덱스를 생성할 수 없습니다.
- 컬렉션의 인덱스는 다음에서 지원되지 않습니다. Cassandra.
- 열에 대한 인덱싱을 하지 않고, Cassandra 기본 키가 아니면 해당 열을 필터링할 수 없습니다.
그렇기 때문에 Cassandra, 인덱스를 생성해야 합니다.
통사론
Create index IndexName on KeyspaceName.TableName(ColumnName);
예시
다음은 인덱스를 생성하지 않고 "dept" 열을 필터링하려고 시도한 스냅샷입니다. 이에 대한 응답으로 오류가 반환되었습니다.
다음은 dept 열에 인덱스가 생성된 스냅샷입니다.
Create index DeptIndex on University.Student(dept);
다음은 'dept' 열을 성공적으로 필터링한 스냅샷입니다.
select * from University.Student where dept='CS';
Cassandra 하락 지수
'Drop index' 명령은 지정된 인덱스를 삭제합니다. 인덱스 생성 중에 인덱스 이름이 지정되지 않은 경우 인덱스 이름은 TableName_ColumnName_idx입니다.
- 인덱스가 존재하지 않는 경우 no-op를 반환하는 IF EXISTS를 사용하지 않으면 오류가 반환됩니다.
- 인덱스를 생성하는 동안 인덱스 이름과 함께 키스페이스 이름을 지정해야 합니다. 그렇지 않으면 현재 키스페이스에서 인덱스가 삭제됩니다.
통사론
Drop index IF EXISTS KeyspaceName.IndexName
예시
다음은 DeptIndex 인덱스를 삭제하는 실행된 명령 'Drop index'의 스냅샷입니다.
drop index IF EXISTS University.DeptIndex;
명령이 성공적으로 실행되면 DeptIndex가 키스페이스에서 삭제됩니다. 이제 부서 열을 기준으로 데이터를 필터링할 수 없습니다.